perm filename PASCAL.DIF[PAS,SYS]3 blob sn#472066 filedate 1979-09-09 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00049 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00008 00002	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 1,1
C00014 00003	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 1,1
C00020 00004	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 1,1
C00025 00005	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 3,3
C00029 00006	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 4,4
C00033 00007	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 6,6
C00036 00008	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 6,6
C00039 00009	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00045 00010	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00050 00011	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00055 00012	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00060 00013	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00066 00014	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00072 00015	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00077 00016	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00082 00017	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00087 00018	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00092 00019	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9
C00096 00020	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 10,13
C00100 00021	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 11,14
C00104 00022	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 11,14
C00108 00023	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 12,15
C00113 00024	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 12,15
C00117 00025	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 12,15
C00121 00026	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 13,16
C00124 00027	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 15,18
C00127 00028	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 15,18
C00130 00029	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 15,18
C00133 00030	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 16,19
C00136 00031	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 16,19
C00139 00032	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 16,19
C00141 00033	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 17,20
C00144 00034	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 17,20
C00146 00035	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 17,21
C00149 00036	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 21,25
C00152 00037	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 23,27
C00155 00038	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 23,27
C00158 00039	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 28,32
C00161 00040	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 29,33
C00164 00041	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 30,34
C00167 00042	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 32,36
C00170 00043	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 32,36
C00173 00044	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 32,36
C00176 00045	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 32,36
C00179 00046	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 36,40
C00182 00047	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 37,41
C00185 00048	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 38,42
C00188 00049	  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 38,42
C00189 ENDMK
C⊗;
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 1,1

**** File 1) PASCAL.BKP[PAS,SYS], Page 1 line 1
1)	COMMENT ⊗   VALID 00038 PAGES
1)	C REC  PAGE   DESCRIPTION
1)	C00001 00001
1)	C00006 00002	(*$T-,S1500,R120*)      (*STANFORD LOTS PASCAL COMPILER*)
1)	C00014 00003	(*HISTORY*)
1)	C00028 00004	(*SWITCHES - OPTIONS*)
1)	C00034 00005	(*NAMING CONVENTIONS*)
1)	C00036 00006	(*IMPLEMENTATION: WHAT YOU NEED AND HOW YOU DO IT*)
1)	C00045 00007	(*LIMITATIONS*)
1)	C00047 00008	(*MAINTENANCE INFORMATION*)
1)	C00053 00009	(*      GLOBAL DECLARATIONS.    *)
1)	C00063 00010	TYPE
1)	C00081 00011	VAR
1)	C00106 00012	   (*      INITPROCEDURES.   *)
1)	C00171 00013	   (*      INIT_COMPILE, PUTADR, LOCATION, INITPASSGO, ERROR   *)
1)	C00179 00014	   (*SYMBOL TABLE INIT: ENTERID, ENTERSTDTYPES, ENTERSTDNAMES, ENTERUNDECL*)
1)	C00206 00015	   (*GET_DIRECTIVES*)
1)	C00220 00016	   (*      COMPILE[ NEWPAGER, WRITEBUFFER, GETNEXTLINE, FINISHLINE, ERROR_WITH_TEXT, WARNING*)
1)	C00231 00017	      (*INSYMBOL[NEXTCH, SKIPCOMMENT[OPTIONS], SKIP_E_DIRECTORY*)
1)	C00250 00018	      (*SEARCHSECTION, SEARCHID, SKIPIFERR, IFERRSKIP, ERRANDSKIP*)
1)	C00255 00019	      (*  BLOCK[ TYPE CHECKING: CONSTANT, GETBOUNDS, STRING, COMPTYPES[CHECKSSTRING[ISMAGIC]] *)
1)	C00268 00020		 (*  TYPEDEFINITION     (TYPE DEFINITION PARSER)        *)
1)	C00295 00021		 (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION        *)
1)	C00324 00022		 (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT*)
1)	C00337 00023		    (*CLOSEFILES, ENTERBODY, LEAVEBODY*)
1)	C00358 00024		    (*FETCH_BASIS,GET_PARAMETER_ADDRESS,GENERATE_CODE,LOAD,STORE,LOAD_ADDRESS*)
1)	C00371 00025		    (*  WRITE_MACHINE_CODE[ AND ITS PARTS.      *)
1)	C00412 00026		       (*      PARTS. ]WRITE_MACHINE_CODE.     *)
1)	C00430 00027		    (*  STATEMENT[  MAKEREAL, SELECTOR[SUBLOWBOUND] *)
1)	C00444 00028		       (*      PROFUNCALL[GETFILENAME,GETPUTRESETREWRITE,READREADLN,BREAKCALL,WRITEWRITELN,MESSAGECALL*)
1)	C00470 00029			  (* PACKUNPACK, NEWDISPOSE, FIRSTLAST, LOWERUPPERBOUND *)
1)	C00491 00030			  (*MINMAX,GETLINENRCALL,PAGECALL,DATECALL,TIMECALL,CLOCKCALL,CARDCALL*)
1)	C00499 00031			  (*ABSCALL,REALTIMECALL,SQRCALL,ODDCALL,ORDCALL,CHRCALL,PREDSUCC,EOFEOLN,PROTECTION,CALLTOCALL[GETSTRINGADDRESS],HALTCALL*)
1)	C00508 00032			  (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT] ]PROFUNCALL*)
1)	C00533 00033		       (*      EXPRESSION[CHANGEBOOL, SEARCHCODE, SIMPLEEXPRESSION[TERM[FACTOR]]] *)
1)	C00565 00034		       (*      ASSIGNMENT[STOREGLOBALS[STOREWORD,GETNEWGLOBPTR]] *)
1)	C00576 00035		       (*GOTOSTATEMENT,COMPOUNDSTATEMENT,IFSTATEMENT,CASESTATEMENT,REPEATSTATEMENT,WHILESTATEMENT,FORSTATEMENT,LOOPSTATEMENT,WITHSTATEMENT*)
1)	C00599 00036		       (*      ]STATEMENT ]BODY ]BLOCK  *)
1)	C00612 00037	      (*  ]COMPILE,REPORTTIME,JUMPTO *)
1)	C00622 00038	   (*     MAIN BODY    *)
1)	C00634 ENDMK
1)	C⊗;
1)	(*$T-,S1500,R120*)      (*STANFORD LOTS PASCAL COMPILER*)
1)	(********************************************************************************
**** File 2) PASCAL.PAS[PAS,SYS], Page 1 line 1
2)	COMMENT ⊗   VALID 00042 PAGES
2)	C REC  PAGE   DESCRIPTION
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 1,1

2)	C00001 00001
2)	C00006 00002	(*$T-,D-,S1700,R30*)       (*STANFORD LOTS PASCAL COMPILER*)
2)	C00014 00003	(*HISTORY*)
2)	C00028 00004	(*SWITCHES - OPTIONS*)
2)	C00035 00005	(*NAMING CONVENTIONS*)
2)	C00037 00006	(*IMPLEMENTATION: WHAT YOU NEED AND HOW YOU DO IT*)
2)	C00046 00007	(*LIMITATIONS*)
2)	C00048 00008	(*MAINTENANCE INFORMATION*)
2)	C00054 00009	(*THE SYMBOL TABLE DATA STRUCTURE*)
2)	C00084 00010	(*LINKAGE CONVENTIONS*)
2)	C00097 00011	(*PACKING POLICY*)
2)	C00103 00012	(*      GLOBAL DECLARATIONS.    *)
2)	C00113 00013	TYPE
2)	C00132 00014	VAR
2)	C00157 00015	   (*      INITPROCEDURES.   *)
2)	C00222 00016	   (*      INIT_COMPILE, PUTADR, LOCATION, INITPASSGO, ERROR   *)
2)	C00230 00017	   (*SYMBOL TABLE INIT: ENTERID, ENTERSTDTYPES, ENTERSTDNAMES, ENTERUNDECL*)
2)	C00257 00018	   (*GET_DIRECTIVES*)
2)	C00270 00019	   (*      COMPILE[ NEWPAGER, WRITEBUFFER, GETNEXTLINE, FINISHLINE, ERROR_WITH_TEXT, WARNING*)
2)	C00282 00020	      (*INSYMBOL[NEXTCH, SKIPCOMMENT[OPTIONS], SKIP_E_DIRECTORY*)
2)	C00291 00021		 (*]INSYMBOL*)
2)	C00302 00022	      (*SEARCHSECTION, SEARCHID, SKIPIFERR, IFERRSKIP, ERRANDSKIP*)
2)	C00307 00023	      (*  BLOCK[ TYPE CHECKING: CONSTANT, GETBOUNDS, STRING, COMPTYPES[CHECKSSTRING[ISMAGIC]] *)
2)	C00320 00024		 (*  TYPEDEFINITION     (TYPE DEFINITION PARSER)        *)
2)	C00347 00025		 (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION, proceduredeclaration[parameterlist[ffparlist]] *)
2)	C00376 00026		 (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT,ADDNEWCOUNTER*)
2)	C00389 00027		    (*CLOSEFILES, ENTERBODY, LEAVEBODY*)
2)	C00410 00028		    (*FETCH_BASIS,GET_PARAMETER_ADDRESS,GENERATE_CODE,LOAD,STORE,LOAD_ADDRESS*)
2)	C00423 00029		    (*  WRITE_MACHINE_CODE[ AND ITS PARTS.      *)
2)	C00464 00030		       (*      PARTS. ]WRITE_MACHINE_CODE.     *)
2)	C00482 00031		    (*  STATEMENT[  MAKEREAL, SELECTOR[SUBLOWBOUND] *)
2)	C00496 00032		       (*      PROFUNCALL[GETFILENAME,GETPUTRESETREWRITE,READREADLN,BREAKCALL,WRITEWRITELN,MESSAGECALL*)
2)	C00522 00033			  (* PACKUNPACK, NEWDISPOSE, FIRSTLAST, LOWERUPPERBOUND *)
2)	C00543 00034			  (*MINMAX,GETLINENRCALL,PAGECALL,DATECALL,TIMECALL,CLOCKCALL,CARDCALL*)
2)	C00551 00035			  (*ABSCALL,REALTIMECALL,SQRCALL,ODDCALL,ORDCALL,CHRCALL,PREDSUCC,EOFEOLN,PROTECTION,CALLTOCALL[GETSTRINGADDRESS],HALTCALL*)
2)	C00560 00036			  (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT,saveexpr] ]PROFUNCALL*)
2)	C00587 00037		       (*      EXPRESSION[CHANGEBOOL, SEARCHCODE, SIMPLEEXPRESSION[TERM[FACTOR]]] *)
2)	C00619 00038		       (*      ASSIGNMENT[STOREGLOBALS[STOREWORD,GETNEWGLOBPTR]] *)
2)	C00630 00039		       (*GOTOSTATEMENT,COMPOUNDSTATEMENT,IFSTATEMENT,CASESTATEMENT,REPEATSTATEMENT,WHILESTATEMENT,FORSTATEMENT,LOOPSTATEMENT,WITHSTATEMENT*)
2)	C00653 00040		       (*      ]STATEMENT ]BODY ]BLOCK  *)
2)	C00666 00041	      (*  ]COMPILE,REPORTTIME,JUMPTO *)
2)	C00676 00042	   (*     MAIN BODY    *)
2)	C00688 ENDMK
2)	C⊗;
2)	(*$T-,D-,S1700,R30*)       (*STANFORD LOTS PASCAL COMPILER*)
2)	(********************************************************************************
***************

  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 1,1


**** File 1) PASCAL.BKP[PAS,SYS], Page 2 line 46
1)	 ********************************************************************************)
1)	(*      (*      CONTENTS.       *)
1)	(*
1)	 PAGE 02 (*HISTORY
1)	 PAGE 03 (*DOCUMENTATION: NAMES AND FILES
1)	 PAGE 04 (*LIMITATIONS
1)	 PAGE 05 (*MAINTENANCE INFORMATION
1)	 PAGE 06 (*      GLOBAL DECLARATIONS.
1)	 PAGE 07 TYPE
1)	 PAGE 08 VAR
1)	 PAGE 09     (*      INITPROCEDURES.
1)	 PAGE 10     (*      INIT_COMPILE, PUTADR, LOCATION, INITPASSGO, ERROR, GET_DIRECTIVES
1)	 PAGE 11 (*SYMBOL TABLE INIT: ENTERID, ENTERSTDTYPES, ENTERSTDNAMES, ENTERUNDECL
1)	 PAGE 12 (*GET_DIRECTIVES
1)	 PAGE 13     (*      COMPILE[ NEWPAGER, WRITEBUFFER, GETNEXTLINE, FINISHLINE, ERROR_WITH_TEXT, WARNING
1)	 PAGE 14 (*INSYMBOL[NEXTCH, SKIPCOMMENT[OPTIONS], SKIP_E_DIRECTORY
1)	 PAGE 15 (*SEARCHSECTION, SEARCHID, SKIPIFERR, IFERRSKIP, ERRANDSKIP
1)	 PAGE 16         (*  BLOCK[ TYPE CHECKING: CONSTANT, GETBOUNDS, STRING, COMPTYPES[CHECKSSTRING[ISMAGIC]]
1)	 PAGE 17             (*  TYPEDEFINITION     (TYPE DEFINITION PARSER)
1)	 PAGE 18             (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION
1)	 PAGE 19             (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT
1)	 PAGE 20 (*CLOSEFILES, ENTERBODY, LEAVEBODY
1)	 PAGE 21 (*FETCH_BASIS,GET_PARAMETER_ADDRESS,GENERATE_CODE,LOAD,STORE,LOAD_ADDRESS
1)	 PAGE 22                 (*  WRITE_MACHINE_CODE[ AND ITS PARTS.
1)	 PAGE 23                     (*      PARTS. ]WRITE_MACHINE_CODE.
1)	 PAGE 24                 (*  STATEMENT[  MAKEREAL, SELECTOR[SUBLOWBOUND]
1)	 PAGE 25                     (*      PROFUNCALL[GETFILENAME,GETPUTRESETREWRITE,READREADLN,BREAKCALL,WRITEWRITELN,MESSAGECALL
1)	 PAGE 26                         (* PACKUNPACK, NEWDISPOSE, FIRSTLAST, LOWERUPPERBOUND
1)	 PAGE 27 (*MINMAX,GETLINENRCALL,PAGECALL,DATECALL,TIMECALL,CLOCKCALL,CARDCALL
1)	 PAGE 28                         (*ABSCALL,REALTIMECALL,SQRCALL,ODDCALL,ORDCALL,CHRCALL,PREDSUCC,EOFEOLN,PROTECTION,CALLTOCALL[GETSTRINGADDRESS],HALTCALL
1)	 PAGE 29 (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT] ]PROFUNCALL
1)	 PAGE 30                     (*      EXPRESSION[CHANGEBOOL, SEARCHCODE, SIMPLEEXPRESSION[TERM[FACTOR]]]
1)	 PAGE 31                     (*      ASSIGNMENT[STOREGLOBALS[STOREWORD,GETNEWGLOBPTR]],
1)	 PAGE 32 (*GOTOSTATEMENT,COMPOUNDSTATEMENT,IFSTATEMENT,CASESTATEMENT,REPEATSTATEMENT,WHILESTATEMENT,FORSTATEMENT,LOOPSTATEMENT,WITHSTATEMENT
1)	 PAGE 33                     (*      ]STATEMENT ]BODY ]BLOCK
1)	 PAGE 34 (*  ]COMPILE,REPORTTIME,JUMPTO
1)	 PAGE 35     (*     MAIN BODY
1)	 *)
1)	(*HISTORY*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 2 line 47
2)	 *
2)	 ********************************************************************************)
2)	(*HISTORY*)
***************


  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 3,3

**** File 1) PASCAL.BKP[PAS,SYS], Page 3 line 113
1)	 *              (4)B    CALL PCROSS AND PASS IT ITS PARAMETERS PROPERLY.
1)	 *              (5)F    USE A BIG VALUE FOR RUNCORE.
**** File 2) PASCAL.PAS[PAS,SYS], Page 3 line 113
2)	 *              (4)B    CALL PCREF AND PASS IT ITS PARAMETERS PROPERLY.
2)	 *              (5)F    USE A BIG VALUE FOR RUNCORE.
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 3 line 153
1)	 *              TO LINK PROPERLY TO PCROSS; CALL DEBUG PROPERLY. (TO DO THIS,
1)	 *              USE THE SAME FILEBLOCKS FOR STANDARD FILES IN PASSGO AND
**** File 2) PASCAL.PAS[PAS,SYS], Page 3 line 153
2)	 *              TO LINK PROPERLY TO PCREF; CALL DEBUG PROPERLY. (TO DO THIS,
2)	 *              USE THE SAME FILEBLOCKS FOR STANDARD FILES IN PASSGO AND
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 3 line 176
1)	 *              BY PCROSS FROM 10-MAR-79.
1)	 *              (29)B   ADD THE PREDEFINED PROCEDURE SETRAN, AND MAKE CALLS
**** File 2) PASCAL.PAS[PAS,SYS], Page 3 line 176
2)	 *              BY PCREF FROM 10-MAR-79.
2)	 *              (29)B   ADD THE PREDEFINED PROCEDURE SETRAN, AND MAKE CALLS
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 3 line 185
1)	 *              (32)B   MESSAGE WOULD BLOW WHEN NEEDING LAST A PASCAL-WRITTEN RUNTIME.
1)	 *
**** File 2) PASCAL.PAS[PAS,SYS], Page 3 line 185
2)	 *              (32)B   MESSAGE WOULD BLOW WHEN NEEDING LAST A PASCAL-WRITTEN RUNTIME. FIXED.
2)	 *
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 4 line 23
1)	 *  [NO]LIST(+)         -             GENERATE LIST FILE              OFF
**** File 2) PASCAL.PAS[PAS,SYS], Page 4 line 23
2)	 *  [NO]LOG           G+/G-           SEND THE ERROR MESSAGES TO
2)	 *                                    FILE SOURCE.LOG                 OFF
2)	 *  [NO]LIST(+)         -             GENERATE LIST FILE              OFF
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 4 line 49
1)	 *  [NO]CREF(+)         -             GENERATE CROSS REFERENCE LIST   OFF
1)	 *  [NO]LINK            -             PROFUNCALL LINK-10 AFTER COMPILATION  OFF
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 4,4

1)	 *  [NO]EXECUTE         -             LOAD AND RUN COMPILED PROGRAM   OFF
**** File 2) PASCAL.PAS[PAS,SYS], Page 4 line 51
2)	 *  [NO]PROFILE       C+/C-           CROSS REFERENCE LIST WITH
2)	 *                                    STATEMENT EXECUTION COUNTS FOR
2)	 *                                    EACH BASIC BLOCK.               OFF
2)	 *  [NO]TTY           Y+/Y-           EXTERNAL PROCEDURES READ FROM TTY  ON
2)	 *  [NO]OUTPUT        O+/O-           EXT. PROCS. WRITE INTO OUTPUT   ON
2)	 *  [NO]CREF(+)         -             GENERATE CROSS REFERENCE LIST   OFF
2)	 *  [NO]LINK            -             CALL LINK-10 AFTER COMPILATION  OFF
2)	 *  [NO]EXECUTE         -             LOAD AND RUN COMPILED PROGRAM   OFF
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 6 line 26
1)	 *     PCROSS.PAS :    CROSS REFERENCE WITHOUT CODE-GENERATION
1)	 *
1)	 *
**** File 2) PASCAL.PAS[PAS,SYS], Page 6 line 26
2)	 *     PCREF.PAS :    CROSS REFERENCE WITHOUT CODE-GENERATION
2)	 *
2)	 *     PFORM.PAS :      PRETTYPRINTER (FORMATTER)
2)	 *
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 6 line 38
1)	 *     PCROSS.EXE :    PCROSS EXECUTABLE MODULE
1)	 *     PASSGO.EXE :    PASSGO EXECUTABLE MODULE.
1)	 *
**** File 2) PASCAL.PAS[PAS,SYS], Page 6 line 39
2)	 *     PASSGO.EXE :    PASSGO EXECUTABLE MODULE.
2)	 *     PCREF.EXE  :    PCREF EXECUTABLE MODULE
2)	 *     PFORM.EXE  :    PFORM EXECUTABLE MODULE.
2)	 *
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 6 line 45
1)	 *
**** File 2) PASCAL.PAS[PAS,SYS], Page 6 line 47
2)	 *     PASCAL.HLP :    A FAST REFERENCE GUIDE TO THE MAIN TOPICS OF THE MANUAL
2)	 *     PASCAL.DOC :    A DESCRIPTION OF SOME OF THE INSIDE PARTS OF THE COMPILER
2)	 *
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 6 line 84
1)	 *       FILE DESCRIPTIONS FOR PASLIB AND PCROSS IN INITPROCEDURE
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 6,6

1)	 *       "SEARCH LIBRARIES")
**** File 2) PASCAL.PAS[PAS,SYS], Page 6 line 88
2)	 *       FILE DESCRIPTIONS FOR PASLIB AND PCREF IN INITPROCEDURE
2)	 *       "SEARCH LIBRARIES")
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 6 line 131
1)	 *       @PCROSS
1)	 *       OLDSOURCE = PASCAL.PAS
1)	 *       NEWSOURCE = PASCAL.PAS/VERSION:11/COMM:U
1)	 *       CROSSLIST = PASCAL.CRL/CROSS:1
1)	 *        PCROSS: PASCAL [PASCAL] 1..
1)	 *          0 ERROR(S) DETECTED
1)	 *       EXIT
1)	 *       @PCROSS
1)	 *       OLDSOURCE = PASCAL.PAS/NONEW
1)	 *       CROSSLIST = PASC2.CRL/VERSION:1/CROSS:14
1)	 *        PCROSS: PASCAL [PASCAL]  1..
1)	 *          0 ERROR(S) DETECTED
1)	 *       EXIT
1)	 *       @PCROSS
1)	 *       OLDSOURCE = PASCAL.PAS/NONEW
1)	 *       CROSSLIST = PASSGO.CRL/CROSS:14/VERSION:2
1)	 *        PCROSS: PASCAL [PASSGO] 1..
1)	 *          0 ERROR(S) DETECTED
**** File 2) PASCAL.PAS[PAS,SYS], Page 6 line 135
2)	 *       @PCREF
2)	 *       OLDSOURCE = PASCAL.PAS
2)	 *       CROSSLIST = PASCAL.LST/CROSS:1
2)	 *        PCREF: PASCAL [PASCAL] 1..
2)	 *          0 ERROR(S) DETECTED
2)	 *       EXIT
2)	 *       @PCREF
2)	 *       OLDSOURCE = PASCAL.PAS
2)	 *       CROSSLIST = PASC2.LST/VERSION:1/CROSS:14
2)	 *        PCREF: PASCAL [PASCAL]  1..
2)	 *          0 ERROR(S) DETECTED
2)	 *       EXIT
2)	 *       @PCREF
2)	 *       OLDSOURCE = PASCAL.PAS
2)	 *       CROSSLIST = PASSGO.LST/CROSS:14/VERSION:2
2)	 *        PCREF: PASCAL [PASSGO] 1..
2)	 *          0 ERROR(S) DETECTED
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 6 line 153
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 6,6

1)	 *    3) CHANGES TO PCROSS
1)	 *
1)	 *       @LOAD PCROSS/LIST/COMPILE
1)	 *         ...
1)	 *        EXIT
1)	 *       @SAVE PCROSS
1)	 *
**** File 2) PASCAL.PAS[PAS,SYS], Page 6 line 156
2)	 *    3) CHANGES TO PCREF
2)	 *
2)	 *       @LOAD PCREF/LIST/COMPILE
2)	 *         ...
2)	 *        EXIT
2)	 *       @SAVE PCREF
2)	 *
2)	 *    4) CHANGES TO PFORM
2)	 *
2)	 *       @LOAD PFORM/LIST/COMPILE
2)	 *         ...
2)	 *        EXIT
2)	 *       @SAVE PFORM
2)	 *
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 8 line 8
1)	 *      WHEN YOU ADD ANY PROCEDURE OR FUNCTION TO THE LIBRARY, YOU
**** File 2) PASCAL.PAS[PAS,SYS], Page 8 line 7
2)	 *
2)	 *      WHEN YOU ADD ANY PROCEDURE OR FUNCTION TO THE LIBRARY, YOU
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 9 line 1
1)	(*      GLOBAL DECLARATIONS.    *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 9 line 1
2)	(*THE SYMBOL TABLE DATA STRUCTURE*)
2)	(********************************************************************************
2)	 *
2)	 * DESCRIPTION OF THE DATA STRUCTURE THAT MAINTAINS THE SYMBOL TABLE IN THE
2)	 * PASCAL AND PASSGO COMPILERS FOR DEC-10,DEC-20, LOTS AND HAMBURG VERSIONS.
2)	 *
2)	 *                      ARMANDO R. RODRIGUEZ.
2)	 *                           8-JUL-79
2)	 *
2)	 * ABSTRACT - INTRODUCTION
2)	 *
2)	 * THE SYMBOL TABLE IS FORMED WITH FIVE BASIC ELEMENTS: CONSTANT DESCRIPTOR
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 * BLOCKS, VALUE DESCRIPTOR BLOCKS, IDENTIFIER DESCRIPTOR BLOCKS (CTP↑),
2)	 * STRUCTURE (TYPE, MAINLY) DESCRIPTOR BLOCKS (STP↑) AND A MAIN FRAME, THAT
2)	 * KEEPS THE SYMBOL TABLE AND IMPLEMENTS THE SCOPING MECHANISM (DISPLAY).
2)	 * THE FIRST TWO ONES ARE EXTREMELY SIMPLE, AND WILL NOT BE DESCRIBED IN THIS
2)	 * DOCUMENT. THE OTHER THREE ONES CONTAIN MOST OF THE USEFUL IMFORMATION.
2)	 * A BRIEF GLOBAL DESCRIPTION OF EACH RECORD IS MADE, AND AN EXPLANATION OF
2)	 * THE MEANING AND USAGE OF EACH FIELD FOLLOWS, RETAINNG THE CASEING STRUCTURE
2)	 * OF THE RECORD. AN EXCCEPTION IS MADE IN THAT THE DUMMY FIELDS ARE ALL DES-
2)	 * CRIBED TOGETHER. WHEN IT SEEMS APPROPRIATE, AN EXPLANATION IS GIVEN ON THE
2)	 * MEANING AND PURPOSE OF EACH OF THE POSSIBLE VALUES OF A GIVEN FIELD.
2)	 * THE APPROACH IS NOT PURELY INFORMAL, BUT IT IS NOT ABSOLUTELY RIGUROUS.
2)	 * THE INTENTION IS TO BE RIGUROUS ENOUGH TO PREVENT AMBIGUITIES.
2)	 * COMMENTS AND CRITICISMS ON THIS DRAFT ARE WELCOME, ENCOURAGED AND APPRECIATED.
2)	 * (SEE ADDRESS INFORMATION IN THE LAST PAGE).
2)	 *
2)	 * EXPLANATION OF SOME TERMS:
2)	 *
2)	 * CHAIN: THE LINKER PROVIDES A FEATURE THAT THIS COMPILER TAKES GOOD ADVANTAGE
2)	 *      OF: WHEN AN ADDRESS IS NEEDED THAT IS NOT KNOWN, A "PATCHBACK REQUEST"
2)	 * CAN BE ISSUED (INTERNALREQUEST, ITEM_10 IS USED FOR GOTOS AND CALLS TO FORWARD
2)	 * PROCEDURES, AND A SYMBOLS, ITEM_2, FOR EXTERNAL PROCEDURE AND RUNTIME CALLS).
2)	 * THE REQUEST PROVIDES THE ADDRESS OF THE INSTRUCTION THAT NEEDS IT AND IS
2)	 * SITUATED IN THE HIGHEST POSITION IN MEMORY. THERE, INSTEAD OF THE ADDRESS THAT
2)	 * WILL BE PATCHED BACK, THE ADDRESS OF THE NEXT HIGHEST REQUESTOR IS KEPT, SO
2)	 * FORMING A BACKWARDS (TOP-DOWN?) CHAIN OF REQUESTORS OF THE SAME ADDRESS. THE
2)	 * LAST ELEMENT OF THE CHAIN CONTAINS A ZERO (0). THE CURRENT TOP OF THAT CHAIN
2)	 * IS KEPT IN FIELD GOTO_CHAIN FOR LABELS, LINKCHAIN FOR PROCS/FUNCS, AND ...
2)	 * VECTORCHAIN FOR SCALARS. SINCE THE LINKER DOES NOT PARTICIPATE IN PASSGO RUNS,
2)	 * PASSGO DOES THA BACKPATCHING ITSELF WITH THE PROCEDURE WALKCHAIN, INSTEAD OF
2)	 * THE REQUEST MADE BY PASCAL USING THE PROCEDURE WRITE_PAIR.
2)	 *
2)	 * BASE TYPE AND HOST TYPE: THIS IS THE TERMINOLOGY USED IN THE PROPOSED ISO
2)	 *                      STANDARD FOR PASCAL. BASE TYPE REFERS TO THE TYPE OF
2)	 * THE ELEMENTS OF A SET, AND HOST TYPE REFERS TO THE ORIGINAL TYPE FROM WHICH A
2)	 * CLOSED INTERVAL DEFINES A SUBRANGE TYPE.
2)	 *
2)	 * LEVEL AND SCOPE: AN IDENTIFIER DEFINED AT A GIVEN LEVEL IS ASSIGNED THAT LEVEL.
2)	 *               ITS SCOPE IS ALL LEVELS WITH A NUMERICAL VALUE HIGHER THAN
2)	 * ITS OWN, THAT ARE NOT IN THE SCOPE OF ANOTHER IDENTIFIER WITH THE SAME NAME AND
2)	 * A LEVEL WITH A NUMERICAL VALUE HIGHER THAN ITS OWN. LEVEL 0 IS ASSIGNED TO PRE-
2)	 * DECLARED OBJECTS, LEVEL 1 TO GLOBAL OBJECTS (DECLARED IN THE MAIN BLOCK) AND
2)	 * LEVELS 2 AND UP TO THE LOCAL OBJECTS INSIDE PROCEDURES AND FUNCTIONS.
2)	 *
2)	 *      THE STRUCTURE DESCRIPTOR BLOCK:
2)	 *
2)	 * ITS MAIN PURPOSE IS TO DESCRIBE A TYPE BY ITS STRUCTURE. NO NAMING IS
2)	 * MANAGED DIRECTLY BY THIS RECORD, ALTHOUGH IT WILL POINT TO IDENTIFIER
2)	 * DESCRIPTORS IN THE CASE OF DECLARED SCALARS AND FIELDS OF RECORDS.
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 * THE VALUES OF SCALKIND: TAGFWITHID, TAGFWITHOUTID AND VARIANT ARE USED TO
2)	 * DESCRIBE PARTS OF A RECORD STRUCTURE. ALL THE OTHER VALUES HAVE OBVIOUS
2)	 * MEANINGS. (POWER STANDS FOR POWERSET).
2)	 *
2)	 * STP: POINTER TO A STRUCTURE DESCRIPTOR RECORD
2)	 * STRUCTURE: STRUCTURE DESCRIPTOR RECORD.
2)	 *   DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7, DB9: DUMMY FIELDS USED TO GET
2)	 *      BETTER ADDRESSING IN THE OTHER FIELDS.
2)	 *   SELFSTP: USED TO BUILD THE DEBUGGER TABLES: A COPY OF THIS RECORD, WITH
2)	 *              THE POINTER VALUES CHANGED TO BE MEANINGFUL AT RUNTIME.
2)	 *   SIZE: MEMORY SPACE NEEDED BY A VARIABLE OF THIS TYPE, IN WORDS.
2)	 *   NOCODE: FLAG SET WHILE DUMPING THE DEBUGGING INFORMATION, TO PREVENT
2)	 *              FROM DUMPING A RECORD TWICE.
2)	 *   BITSIZE: MEMORY SPACE NEEDED, IN BITS, IF THIS TYPE IS USED TO BUILD A
2)	 *              PACKED STRUCTURE. (IF SIZE > 1 WORD, BITSIZE = 1 WORD).
2)	 *
2)	 *   FORM: FLAG TO DISTINGUISH THE DIFFERENT STRUCTURES. THE NAMES ARE OBVIOUS,
2)	 *              AND BRIEFLY DESCRIBED BELOW.
2)	 *
2)	 *     SCALAR: A SIMPLE TYPE, EXCEPT FOR SUBRANGES.
2)	 *      SCALKIND: STANDARD: INTEGER, REAL OR ASCII (CHAR IS A SUBRANGE)
2)	 *                DECLARED: NAMED SCALARS, INCLUDING BOOLEANS.
2)	 *        FCONST: POINTER TO THE IDENTIFIER DESCRIPTOR FOR THE FIRST MEMBER
2)	 *                  OF THIS TYPE. THEY WILL BE CHAINED BY THEIR NEXT FIELD.
2)	 *        VECTORADDR: ADDRESS OF THE STRING CONSTANT THAT CONTAINS ALL THE
2)	 *                      NAMES OF THE ELEMENTS, ORDERED FROM VALUE ZERO.
2)	 *        VECTORCHAIN: TOP OF THE CHAIN OF REFERENCES TO VECTORADDR.
2)	 *                      SEE EXPLANATION ON CHAINS ABOVE.
2)	 *        DIMENSION: ORD(LAST(THIS TYPE)): THE MAXIMUM VALUE THAT IS DEFINED
2)	 *                      BY A NAME IN THIS TYPE. IT IS ALSO THE NUMBER OF
2)	 *                      ELEMENTS MINUS ONE.
2)	 *        NEXTSCALAR: ALL TYPE DESCRIPTORS THAT DESCRIBE DECLARED (NAMED)
2)	 *                      SCALARS ARE CHAINED THROUGH THIS FIELD, TO SIMPLIFY
2)	 *                      THE DUMP OF THEIR NAME STRINGS IN WRITE_MACHINE_CODE
2)	 *        REQUEST: FLAG THAT SETS TRUE IF ANY FORMATTED I/O (READ/WRITE) IS
2)	 *                      DONE ON THIS TYPE, OR IT DEFINES A PARAMETER TO AN
2)	 *                      EXTERNAL PROCEDURE. USED TO DECIDE WHETHER TO DUMP
2)	 *                      THE STRING OF NAMES FOR RUNTIME USE.
2)	 *        TLEV: THE SCOPING LEVEL AT WHICH THE TYPE WAS DEFINED.
2)	 *
2)	 *     SUBRANGE: SUBRANGE TYPE. INCLUDES CHAR.
2)	 *      RANGETYPE: POINTER TO THE STRUCTURE DESCRIPTOR OF THE HOST TYPE.
2)	 *      VMIN, VMAX: MINIMUM AND MAXIMUM VALUES OF THE CLOSED RANGE THAT
2)	 *                      DEFINES THE SUBRANGE. (SUBRANGES OF REAL ARE SUPPOR-
2)	 *                      TED).
2)	 *
2)	 *     POINTER: POINTER TYPE.
2)	 *      ELTYPE: POINTER TO THE STRUCTURE DESCRIPTOR OF THE TYPE THIS TYPE
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 *              WILL POINT TO.
2)	 *
2)	 *     POWER: SET TYPE.
2)	 *      ELSET: POINTER TO THE STRUCTURE DESCRIPTOR OF THE BASE TYPE.
2)	 *
2)	 *     ARRAYS: ARRAY TYPE.
2)	 *      ARRAYPF: "PACKED FLAG": TRUE IF THE ELEMENTS OF THIS ARRAY ARE PACKED
2)	 *      ARRAYBPADDR: ADDRESS OF A WORD IN DATA AREA RESERVED FOR A BYTE POINTER
2)	 *                      USED FOR ADDRESSING ELEMENTS OF THIS ARRAY.
2)	 *      AELTYPE: POINTER TO THE STRUCTURE DESCRIPTOR OF THE TYPE OF THE ELEMENT
2)	 *                      OF THIS ARRAY.
2)	 *      INXTYPE: POINTER TO THE STRUCTURE DESCRIPTOR OF THE TYPE OF THE SUBS-
2)	 *                      CRIPT OF THIS ARRAY.
2)	 *
2)	 *     RECORDS: RECORD TYPE.
2)	 *      RECORDPF: "PACKED FLAG".
2)	 *      FSTFLD: POINTER TO THE IDENTIFIER DESCRIPTOR OF THE FIRST FIELD OF THE
2)	 *              NON-VARIANT PART OF THIS RECORD. THEY WILL BE CHAINED THROUGH
2)	 *              THE NEXT FIELD.
2)	 *      RECVAR: POINTER TO A STRUCTURE DESCRIPTOR OF FORM TAGFWITHID OR ...
2)	 *              TAGFWITHOUTID, FROM WHICH THE DESCRIPTION OF THE VARIANT PART
2)	 *              HANGS. NIL IF NO VARIANT PART.
2)	 *
2)	 *     FILES: FILE TYPE.
2)	 *      FILETYPE: POINTER TO THE STRUCTURE DESCRIPTOR OF THE TYPE OF THE
2)	 *                  ELEMENTS THAT FORM THE SEQUENCE IN THIS FILE, OR, IN OTHER
2)	 *                  WORDS, THE TYPE OF THE SO-CALLED FILE_BUFFER_VARIABLE.
2)	 *      FILEFORM: BINARY VALUE USED BY RUNTIMES TO DISTINGUISH A FILE THAT WILL
2)	 *                  BE USED WITH FORMATTED I/O (TEXT_FILE) FROM ONE THAT NEEDS
2)	 *                  STANDARD I/O (DATA_FILE).
2)	 *      FILEMODE: BINARY VALUE USED BY THE RUNTIMES TO DISTINGUISH A FILE THAT
2)	 *                  HAS BYTE-LONG ELEMENTS (TEXT, PACKED FILE OF ASCII) FROM
2)	 *                  ONE THAT HAS N-WORD-LONG ELEMENTS (ALL OTHER FILES).
2)	 *
2)	 *     TAGFWITHID: A TAG FIELD THAT USES PHYSICAL MEMORY SPACE: POINTS TO
2)	 *                  THE ALTERANTIVE VARIANT PART DESCRIPTORS.
2)	 *     TAGFWITHOUTID: SAME, FOR A TAG FIELD THAT DOES NOT USE MEMORY SPACE.
2)	 *      FSTVAR: POINTER TO THE STRUCTURE DESCRIPTOR FOR ONE OF THE ALTERNATIVE
2)	 *              VARIANT PARTS OF THIS RECORD AT THIS (CASING) LEVEL. NOTICE
2)	 *              THAT THE LEXICAL LEVEL REMAINS THE SAME AS LONG AS THE TYPE
2)	 *              OF A FIELD IS NOT A RECORD ITSELF, SO NESTED CASES ARE STILL
2)	 *              AT THE SAME LEVEL. THE OTHER VARIANT ALTERNATIVES WILL BE
2)	 *              CHAINED THROUGH THE NXTVAR FIELD.
2)	 *      TAGFIELDP: POINTER TO THE IDENTIFIER DESCRIPTOR OF A TAGFWITHID.
2)	 *      TAGFIELDTYPE: POINTER TO THE STRUCTURE DESCRIPTOR OF A TAGFWITHOUTID.
2)	 *
2)	 *     VARIANT: THE STRUCTURE THAT IS 'ACTIVE' IN THE VARIANT PART OF A RECORD,
2)	 *              WHEN THE CORRESPONDING TAG FIELD HAS SOME GIVEN VALUE.
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 *      NXTVAR: POINTER TO THE STRUCTURE DESCRIPTOR OF THE VARIANT PART FOR
2)	 *              SOME OTHER VALUE OF THE TAG FIELD.
2)	 *      SUBVAR: POINTER TO THE STRUCTURE DESCRIPTOR OF A TAGFWITHID OR OF A
2)	 *              TAGFWITHOUTID THAT DESCRIBES A VARIANT PART CONTAINED IN THIS
2)	 *              VARIANT PART, IF ANY. (E.G., IN THIS RECORD TYPE, STRUCTURE,
2)	 *              THE VARIANT  DESCRIPTOR FOR FORM = SCALAR POINTS THROUGH SUBVAR
2)	 *              TO THE TAGFWITHID DESCRIPTOR FOR SCALKIND).
2)	 *      FIRSTFIELD: POINTER TO THE IDENTIFIER DESCRIPTOR OF THE FIRST FIELD OF
2)	 *              THIS VARIANT PART.
2)	 *      VARVAL: VALUE THAT THE TAG FIELD SHOULD HAVE FOR THIS VARIANT TO BE
2)	 *              'ACTIVE'. (VALID/CURRENT).
2)	 *
2)	 *      THE IDENTIFIER DESCRIPTOR BLOCK:
2)	 *
2)	 * ITS MAIN PURPOSE IS TO DESCRIBE THE MEANING AND PROPERTIES OF AN IDENTIFIER.
2)	 * NO STRUCTURAL INFORMATION IS REFLECTED DIRECTLY IN THIS RECORD, EXCEPT FOR THE
2)	 * FACT THAT DECLARED SCALARS, PARAMETER LISTS AND FIELDS ARE DESCRIBED BY A CHAIN
2)	 * OF IDENTIFIER DESCRIPTORS. THE NAMES USED IN THE MAIN VARIANT PART HAVE OBVIOUS
2)	 * MEANINGS.
2)	 *
2)	 * CTP: POINTER TO AN IDENTIFIER DESCRIPTOR RECORD.
2)	 *
2)	 * IDENTIFIER: IDENTIFIER DESCRIPTOR RECORD.
2)	 *   VDUMMY1, VDUMMY2, HDUMMY, PDUMMY: DUMMY FIELDS USED TO GET BETTER ADDRESSING
2)	 *      IN THE REST OF THE FIELDS.
2)	 *   NAME: OF THE IDENTIFIER.
2)	 *   LLINK, RLINK: TO KEEP THE IDENTIFIERS OF EACH LEVEL (SCOPE) ORGANIZED IN A
2)	 *              BINARY SEARCH TREE, BY NAME.
2)	 *   IDTYPE: POINTER TO THE STRUCTURE DESCRIPTOR OF THE TYPE OF THIS CONSTANT,
2)	 *        VARIABLE, FIELD OR FUNCTION. NIL OTHERWISE.
2)	 *   NEXT: USED TO FORM CHAINS OF IDENTIFIERS. DEPENDING ON KLASS, IT POINTS TO:
2)	 *      IN KONST: (WHEN IT IS A MEMBER OF A DECLARED TYPE): THE MEMBER OF THE
2)	 *                TYPE WITH THE INTERNAL VALUE IMMEDIATELY LOWER THAN THIS ONE.
2)	 *      IN VARS: (WHEN THEY DESCRIBE A PARAMETER OF A PROCEDURE):
2)	 *                THE NEXT PARAMETER.
2)	 *      IN FIELD: NEXT FIELD OF THIS STATIC OR VARIANT PART OF THIS RECORD TYPE.
2)	 *      IN PROC AND FUNC: (WHEN THEY ARE ACTUAL): THE FIRST PARAMETER.
2)	 *      IN LABELS: NEXT LABEL THAT WAS DECLARED AT THIS SAME SCOPE LEVEL.
2)	 *      (THIS CHAINS ARE COMPLEMENTARY. ALL IDENTIFIERS HANG FROM RLINK, LLINK).
2)	 *   SELFCTP: USED TO BUILD THE DEBUGGER TABLES: A COPY OF THIS RECORD, WITH THE
2)	 *              POINTER VALUES CHANGED TO BE MEANINGFUL AT RUNTIME.
2)	 *   NOCODE: FLAG SET WHILE DUMPING THE DEBUGGING INFORMATION, TO PREVENT FROM
2)	 *              DUMPING A RECORD TWICE.
2)	 *
2)	 *   KLASS: FLAG TO DISTINGUISH THE DIFFERENT KINDS OF IDENTIFIERS. THE NAMES ARE
2)	 *              OBVIOUS, AND ARE BRIEFLY EXPLAINED BELOW.
2)	 *
2)	 *     KONST: A CONSTANT. (EITHER A NAME THAT DEFINES A NUMBER, AS DECLARED IN THE
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 *              CONST PART OF A PROGRAM, OR AN ELEMENT OF A DECLARED SCALAR TYPE)
2)	 *      VALUES: ITS NUMERICAL VALUE.
2)	 *
2)	 *     VARS: A VARIABLE. (EITHER A PARAMETER OR A LOCAL VARIABLE).
2)	 *      VKIND: ACTUAL: LOCAL VARIABLE OR VALUE PARAMETER.
2)	 *             FORMAL: VAR PARAMETER.
2)	 *      VLEV: THE LEVEL (SCOPE) AT WHICH IT WAS DECLARED.
2)	 *      CHANNEL: FOR VARIABLES THAT ARE FILES, THE ACTUAL HARDWARE CHANNEL NUMBER
2)	 *               THAT WILL BE REQUESTED FOR IT AT RUNTIME.
2)	 *      VADDR: ADDRESS OF THE PLACE IN MEMORY THAT WAS ASSIGNED TO IT. FOR LOCAL
2)	 *              VARIABLES AND PARAMETERS, IT IS RELATIVE TO THE BASE OF THE STACK
2)	 *              FRAME (POINTED TO BY ACREGISTER 16B). [2]
2)	 *
2)	 *     FIELD: A FIELD OF A RECORD (EITHER IN A STATIC OR A VARIANT PART.)
2)	 *      PACKF: "PACKED" FLAG: (IT SHOULD BE CALLED ALIGNMENT FLAG): INFORMATION
2)	 *              ON THE LOCATION OF ITS STARTING ADDRESS: EITHER AT A WORD BOUN-
2)	 *              DARY, OR AT A HALF-WORD BOUNDARY, OR AT SOME BIT POSITION INSIDE
2)	 *              THE WORD, WHICH REQUIRES A BYTE POINTER TO ACCESS IT.
2)	 *      NOTPACK,HWORDR,HWORDL: FLDADDR: ADDRESS OF THE FIELD, RELATIVE TO THE
2)	 *              ADDRESS OF THE RECORD.
2)	 *      PACKK: FLDBYTE: A DESCRIPTOR OF THE BYTEPOINTER USED TO REACH THIS FIELD.
2)	 *
2)	 *     PROC, FUNC: A PROCEDURE OR FUNCTION (EITHER THE PROC/FUNC ITSELF, OR AN
2)	 *              EXTERN OR FORWARD REFERENCE, OR A PROC/FUNC DECLARED AS A
2)	 *              PARAMETER).
2)	 *      PFDECLKIND: DISTINCTION BETWEEN STANDARD AND DECLARED. (NOTE: THIS IS
2)	 *              NOT THE PASCAL LANGUAGE MEANING OF STANDARD AND DECLARED/PREDE-
2)	 *              CLARED.)
2)	 *          STANDARD: IT NEEDS SPECIAL PARSING, EITHER BECAUSE IT IS DECOMPO-
2)	 *              SED INTO CALLS TO DIFFERENT RUNTIMES(READ/WRITE) OR BECAUSE IT
2)	 *              TAKES NON-STANDARD PARAMETER LISTS (GET,PUT,BREAK,...) OR
2)	 *              BECAUSE IT IS COMPILED INLINE (PACK/UNPACK, ABS,...).
2)	 *            KEY: SUBSCRIPT FOR ITS NAME IN NA (STDFUNC OR STDPROC)
2)	 *          DECLARED: IT HAS NO SPECIAL TREATMENT, SO A CALL TO IT WILL BE
2)	 *              TREATED BY THE CALL_NON_STANDARD PROCEDURE.
2)	 *            PFLEV: LEVEL AT WHICH IT WAS DECLARED.
2)	 *            PARLISTSIZE: AMOUNT OF MEMORY SPACE NEEDED IN THE STACK FRAME FOR
2)	 *                          THE PARAMETERS.
2)	 *            PFADDR: ADDRESS OF THE ENTRY POINT, FOR A LOCAL PROCEDURE.
2)	 *            HIGHEST_REGISTER: HIGHEST REGISTER USED FOR PARAMETER PASSING.
2)	 *                USUALLY 6. SEE THE DESCRIPTION OF THE /REGISTER:N SWITCH, OR
2)	 *                $XN OPTION [1]. SEE ALSO [2]
2)	 *            PFKIND: FLAG TO DISTINGUISH PARAMETER PROCEDURES.
2)	 *              ACTUAL: NOT A PARAMETER PROCEDURE.
2)	 *                  FORWDECL: FLAG. TRUE IF IT WAS DECLARED FORWARD AND THE
2)	 *                              BODY HAS NOT BEEN COMPILED YET.
2)	 *                  EXTERNDECL: TRUE IF IT WAS DECLARED EXTERNAL OR IF IT IS A
2)	 *                              PREDECLARED PROCEDURE FROM THE RUNTIME LIBRARY.
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 *                  ACTIVATED: TRUE WHILE PARSING INSIDE THE SCOPE OF THIS FUN-
2)	 *                              CTION, SO THAT ITS APPEARENCE IN THE LEFT SIDE
2)	 *                              OF AN ASSIGNMENT IS LEGAL.
2)	 *                  PFCHAIN: TO KEEP THREE CHAINS OF IDENTIFIER DESCRIPTORS:
2)	 *                              ONE FOR LOCAL, ONE FOR FORWARD REFERENCES, AND
2)	 *                              ONE FOR EXTERNAL REFERENCES, FOR ?, FOR INTER-
2)	 *                              NAL REQUESTS, AND FOR SYMBOL REQUESTS, RESPEC-
2)	 *                              TIVELY.
2)	 *                  LANGUAGE: EITHER PASCALSY OR FORTRANSY, TO APPLY THE DIFFE-
2)	 *                              RENT LINKAGE CONVENTIONS.
2)	 *                  TESTFWDPTR: CHAIN OF FORWARD PROCEDURES DECLARED AT THIS
2)	 *                              SCOPE. FOR TEST ON UNSATISFIED FORWARD DECLA-
2)	 *                              RATIONS.
2)	 *                  EXTERNALNAME: TO BE USED IN THE SYMBOLS REQUEST TO THE
2)	 *                              LINKER.
2)	 *
2)	 *                  LINKCHAIN: TOP OF THE CHAIN OF REFERENCES (CALLS) TO THIS
2)	 *                              PROCEDURE/FUNCTION. SEE EXPLANATION ON CHAINS
2)	 *                              ABOVE.
2)	 *              FORMAL: A PARAMETER PROCEDURE/FUNCTION.
2)	 *                  FPARAM: POINER TO THE IDENTIFIER DESCRIPTOR OF THE FIRST
2)	 *                              PARAMETER TO THIS PROCEDURE. NOTE THAT THESE
2)	 *                              DESCRIPTORS HAVE NO NAME, AND ARE NOT INSERTED
2)	 *                              IN THE BINARY TREE. [1]. (IN ACTUAL PROCEDURES/
2)	 *                              FUNCTIONS, IT IS KEPT IN NEXT, BUT HERE NEXT
2)	 *                              POINTS TO THE NEXT OF THE PARAMETERLIST IN WHICH
2)	 *                              THIS PROCEDURE IS A MEMBER.)
2)	 *
2)	 *     LABELS: A DECLARED LABEL.
2)	 *      SCOPE: LEVEL AT WHICH IT WAS DECLARED, WHICH DEFINES ITS SCOPE.
2)	 *      JUMP_INDEX: SUBSCRIPT INTO JUMP_TABLE, WHICH KEEPS THE ADDRESS WHERE
2)	 *                      THE ACREGISTERS 16B AND 17B (STACK FRAME BOUNDARIES)
2)	 *                      ARE SAVED ON ENTRY. USED FOR GOTOS OUT OF BLOCK.
2)	 *      EXIT_JUMP: TRUE IF THIS LABEL IS THE SUBJECT OF A GOTO OUT OF BLOCK.
2)	 *      GOTO_CHAIN: TOP OF THE CHAIN OF REFERENCES TO THIS LABEL. SEE
2)	 *                      EXPLANATION ON CHAINS ABOVE.
2)	 *      LABEL_ADDRESS: THE ADDRESS IN MEMORY WHERE A GOTO TO THIS LABEL SHOULD
2)	 *                      JUMP TO.
2)	 *
2)	 *      THE DISPLAY ARRAY:
2)	 *
2)	 * THE ARRAY VARIABLE DISPLAY IS THE MECHANISM THAT IMPLEMENTS THE SCOPING RULES
2)	 * OF PASCAL: THE MOST IMPORTANT COMPONENT OF EACH OF ITS ELEMENTS IS THE CTP
2)	 * FNAME WHICH POINTS TO THE IDENTIFIER DESCRIPTOR OF THE FIRST NAME THAT WAS
2)	 * DECLARED IN THAT SCOPE. THE REST OF THEM HANG FROM IT IN A BINARY SEARCH TREE.
2)	 * WHILE PARSING THE DECLARATION OF A RECORD TYPE, AND WHEN INSIDE A WITH STATE-
2)	 * MENT, THE CHAIN OF FIELDS OF THAT RECORD HANG FROM ONE OF THE ELEMENTS OF
2)	 * DISPLAY. THE INDEX IN DISPLAY MATCHES EXACTLY THE SCOPE LEVEL FOR ALL OTHER
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 * CASES. DISPLAY[0].FNAME POINTS TO THE BINARY TREE OF PREDEFINED OBJECTS, AND
2)	 * SO ON. WHEN THE PARSING OF THE BODY OF A PROCEDURE IS FINISHED, THE WHOLE
2)	 * BINARY TREE THAT DESCRIBES IT IS THROWN AWAY. THE DESCRIPTORS OF ITS PARAMETERS
2)	 * ARE STILL AROUND, THOUGH, HANGING FROM THE NEXT FIELD.
2)	 *
2)	 ********************************************************************************)
2)	(*LINKAGE CONVENTIONS*)
2)	(********************************************************************************
2)	 *
2)	 *   LINKAGE CONVENTIONS OF THE PASCAL AND PASSGO COMPILERS FOR DEC-SYSTEM10
2)	 *              AND DEC-SYSTEM20, HAMBURG AND LOTS VERSIONS
2)	 *                              VERSION 1.0
2)	 *
2)	 *                          ARMANDO R. RODRIGUEZ
2)	 *                                6-AUG-79
2)	 *
2)	 * ABSTRACT:
2)	 *      A SEMIFORMAL DESCRIPTION OF THE MEMORY AND ACREGISTER MAPPING MECHANISM
2)	 *      IS GIVEN, TOGETHER WITH A DESCRIPTION OF THE LINKAGE CONVENTION AND THE
2)	 *      FRAME SETUP SEQUENCE, FOR CODE GENERATED BY THE DEC10-DEC20 PASCAL
2)	 *      COMPILERS. COMMENTS ARE ADDED IN SOME PLACES, TO CLARIFY THINGS FOR
2)	 *      THE READER WHO PLANS TO WRITE A ROUTINE IN ASSEMBLY LANGUAGE, AND
2)	 *      CALL IT FROM PASCAL PROGRAMS.
2)	 *
2)	 * ACKNOWLEDGEMENTS:
2)	 *      THANKS TO POLLE ZELLWEGER AND DAN HALBERT, WHO POINTED OUT FLAWS IN THE
2)	 *      FIRST DRAFT, AND HELPED GETTING IDEAS STRAIGHT FOR THIS ONE.
2)	 *
2)	 * NOTATION:
2)	 *      A) ALL THE REFERENCES TO ACREGISTERS ARE OCTAL NUMBERS. THE LETTER B
2)	 *              AFTER THE NUMBER MEANS OCTAL.
2)	 *      B) FOR RELATIVE ADDRESSES, ASSEMBLY LANGUAGE NOTATION IS USED:
2)	 *              1(17B) MEANS (CONTENTS OF RIGHT HALF OF 17B) PLUS ONE.
2)	 *
2)	 * 0. ACREGISTER MAPPING:
2)	 *      ACREGISTER 17B POINTS TO THE TOP OF THE STACK.
2)	 *      ACREGISTER 16B POINTS TO THE BOTTOM OF THE CURRENT STACK FRAME
2)	 *              (THE TOP OF THE STACK FOR THE CALLER, PLUS ONE)
2)	 *      ACREGISTER 15B POINTS TO THE 'TOP' OF THE HEAP (THE HEAP GROWS
2)	 *              DOWN FROM THE TOP OF THE LOW SEGMENT TOWARDS THE STACK.)
2)	 *      ACREGISTERS 7 TO 14B ARE USED AS AN UPSIDE-DOWN STACK TO KEEP
2)	 *              WITH POINTERS (THAT IS, IT GROWS FROM 14B TOWARDS 7).
2)	 *      INSIDE PASCAL CODE, THE EXPRESSION EVALUATION STACK GROWS FROM
2)	 *              ACREGISTER 2 TOWARDS THE WITH STACK. (IF IT RUNS OUT OF
2)	 *              REGISTERS, PASCAL GIVES A COMPILE TIME ERROR. IT DOES
2)	 *              STACK HEIGHT REDUCTION, SO THIS RARELY HAPPENS).
2)	 *      ACREGISTERS 2 TO 6 WILL PARTICIPATE IN THE PARAMETER PASSING.
2)	 *              (THE VALUE 6 IS THE DEFAULT VALUE FOR THE SWITCH /REGISTER
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 *              OR COMPILER OPTION (*$XN+). SEE THE MANUAL[1] FOR DETAILS)
2)	 *              IF THERE IS A NONEMPTY EXPRESSION EVALUATION STACK (WHEN
2)	 *              CALLING A FUNCTION TO EVALUATE A PARAMETER, ONLY) THEN
2)	 *              IT IS SAVED AND RESTORED BY THE CALLER.
2)	 *      ACREGISTERS 0 AND 1 ARE NEVER USED BY PASCAL-GENERATED CODE:
2)	 *              THEY ARE KEPT FREE, FOR THE USE OF THE RUNTIME ROUTINES. IF
2)	 *              YOU ARE WRITTING AN ASSEMBLY-LANGUAGE ROUTINE, AND YOU DON'T
2)	 *              CALL ANY RUNTIME LIBRARY ROUTINE, YOU ARE FREE TO USE THEM.
2)	 *
2)	 * 1. BUT, WHERE IS THE DISPLAY KEPT?
2)	 *      THE DISPLAY IS NOT KEPT AS AN ENTITY. THE DYNAMIC LINK IS CARRIED
2)	 *      AROUND BY THE LEFT HALF OF ACREGISTER 16B, AND DEPOSITED IN THE LAST
2)	 *      WORD OF THE CALLER'S FRAME, IN THE LEFT HALF ALSO. THIS WORD WAS
2)	 *      ALLOCATED BY THE CALLER FOR THAT SPECIFIC PURPOSE. SO, TO GET THE
2)	 *      BASE OF THE FRAME FOR THE CALLER OF YOUR CALLER (TWO LEVELS), YOU
2)	 *      USE THE LEFT HALF OF -1(16B), PUT IT IN ACREGISTER X, AND THEN USE
2)	 *      THE LEFT HALF OF -1(X).
2)	 *
2)	 * 2. THINGS DONE BY THE CALLER ON CALL:
2)	 *      A) SAVE ANY LIVE REGISTERS IN THE RANGE 2 TO 6, IN TEMPORARY SPACE
2)	 *              IN ITS OWN AREA, AND FROM THE RANGE 14B DOWN TO 7, IN THE
2)	 *              LOCATION OF THE CORRESPONDING POINTER VARIABLE.
2)	 *      B) PASS THE PARAMETERS (SEE 3 BELOW).
2)	 *      C) ISUE A PUSHJ 17B,<CALLEE> TO CALL.
2)	 *
2)	 * 3. PASSING PARAMETERS:
2)	 *      A) ACREGISTERS 2 TO 6 ARE USED FOR THE FIRST PARAMETERS.
2)	 *      B) VAR PARAMETERS:
2)	 *              THE ADDRESS IS PASSED. THE CALLEE WILL ACCESS THEM INDIRECTLY.
2)	 *      C) NON-VAR PARAMETERS, ONE- AND TWO-WORD LONG:
2)	 *              THE VALUE IS PASSED IN THE ACREGISTERS. IF IT IS A TWO-WORD,
2)	 *              AND THE FIRST WORD FALLS IN ACREGISTER 6, IT IS PUT THERE, AND
2)	 *              THE SECOND WORD GOES TO ITS TARGET PLACE BEYOND THE STACK.
2)	 *      D) NON-VAR PARAMETERS, LARGER THAN TWO WORDS:
2)	 *              THE ADDRESS IS PASSED IN AN ACREGISTER.
2)	 *      E) WHEN THE SIX ACREGISTERS HAVE BEEN USED UP:
2)	 *              WHAT WOULD HAVE BEEN PASSED THROUGH THE ACREGISTER IS
2)	 *              PUT DIRECTLY IN ITS PLACE IN MEMORY BEYOND THE TOP OF THE STACK.
2)	 *
2)	 * 4. MEMORY MAPPING OF THE CALLEE'S AREA:
2)	 *      STARTING IN THE BASE ADDRESS (CONTENTS OF 16B WHEN IN YOUR AREA,
2)	 *              CONTENTS OF 17B PLUS 1, WHEN BEYOND THE STACK):
2)	 *      FOR PROCEDURES: 1(BASE) HAS THE FIRST PARAMETER. PARAMETERS ARE
2)	 *              ASSIGNED MEMORY IN THE ORDER IN WHICH THEY WERE DECLARED.
2)	 *      FOR FUNCTIONS: 1(BASE) IS WHERE THE RETURNED VALUE WILL BE PUT.
2)	 *              2(BASE) HAS THE FIRST PARAMETER. EVERYTHING ELSE IS THE SAME.
2)	 *      LOCAL VARIABLES COME AFTER THE PARAMETERS, ALMOST IN THE ORDER OF
2)	 *              DECLARATION. (A GROUP OF VARIABLES DECLARED BY AN ID-LIST
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 *              IS ALLOCATED IN REVERSE ORDER).
2)	 *      ANY TEMPORARY SAVE AREAS ARE ALLOCATED AFTER THE LOCAL VARIABLES.
2)	 *              THEY ARE USED AS A COMPILE-TIME-ASSIGNED STACK, AND THE
2)	 *              HIGHEST LEVEL IS ALLOCATED.
2)	 *      AN EXTRA WORD IS ALLOCATED FOR THE DYNAMIC LINK.
2)	 *
2)	 * 5. FIRST THINGS DONE BY THE CALLEE:
2)	 *      A) REORGANIZE ACREGISTERS 16B AND 17B TO POINT TO ITS OWN FRAME.
2)	 *      B) UPDATE THE DYNAMIC LINK BY MOVING AROUND HALFS BETWEEN 17B,
2)	 *              16B AND -1(16B).
2)	 *      B) COPY THE PARAMETERS FROM THE ACREGISTERS INTO THEIR PLACES IN MEMORY.
2)	 *              +  VALUE (NON-VAR) PARAMETERS WHICH ARE LONGER THAN TWO
2)	 *              WORDS: TAKE THE ADDRESS FROM THE ACREGISTER, OR FROM THE
2)	 *              FIRST WORD IN ITS MEMORY LOCATION (IF IT IS AN OVERFLOW
2)	 *              PARAMETER), AND DO A BLT (BLOCK TRANSFER).
2)	 *              +  VAR PARAMETERS, AND NON-VAR WHICH ARE ONE OR TWO WORDS:
2)	 *              IF THEY ARE IN ACREGISTERS, COPY THEM INTO THEIR PLACE IN
2)	 *              MEMORY. IF NOT, DO NOTHING.
2)	 *
2)	 * 6. REGISTERS THAT THE CALLEE CAN USE:
2)	 *      ALL OF REGISTERS 2 TO 14B. ANY OF THEM THAT WERE ALIVE WERE SAVED BY THE
2)	 *      CALLER. IF YOU DON'T CALL ANY OF THE RUNTIME LIBRARY ROUTINES, YOU CAN
2)	 *      USE REGISTERS 0 AND 1 ALSO.
2)	 *
2)	 * 7. LAST THINGS DONE BY THE CALLEE:
2)	 *      A) PUT BACK IN PLACE THE LEFT HALFS OF ACREGISTERS 17 (PUSHJ COUNT)
2)	 *              AND 16B (DYNAMIC LINK).
2)	 *      B) ISUE A POPJ 17B TO GO BACK.
2)	 *      C) NOTHING ELSE. EVEN IF IT IS A FUNCTION, THE RESULT WAS PUT IN ITS
2)	 *              PLACE IF AND WHEN AN ASSIGNMENT WAS MADE TO THE FUNCTION
2)	 *              IDENTIFIER. (ITS PLACE IS 1(16B), OR 1(17B) IF YOU DID NOT
2)	 *              BUILD YOUR OWN FRAME).
2)	 *
2)	 * 8. THINGS DONE BY THE CALLER ON RETURN:
2)	 *      A) RECONSTRUCT ITS OWN FRAME.
2)	 *      B) IF IT SAVED ACREGISTERS IN MEMORY, BRING THEM BACK TO PLACE.
2)	 *      B) IF THE CALLEE WAS A FUNCTION, PICK UP THE RESULT FROM 2(17),
2)	 *              AND PUT IT IN AN ACREGISTER (THE CURRENT TOP OF THE EXPRESSION
2)	 *              EVALUATION STACK).
2)	 *
2)	 * BIBLIOGRAPHY:
2)	 *
2)	 * [1]  RODRIGUEZ, ARMANDO: PASCAL AND PASSGO AT LOTS, ADAPTED FROM
2)	 *      PASCAL FOR THE DECSYSTEM-20, BY E. KISICKI AND H.H.NAGEL.
2)	 *      AVAILABLE ON-LINE AT LOTS AND SCORE IN DOC:PASCAL.MAN
2)	 *      ACCESSIBLE AT SU-AI BY .READ PASMAN
2)	 *
2)	 *
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 ********************************************************************************)
2)	(*PACKING POLICY*)
2)	(********************************************************************************
2)	 *
2)	 *      PACKING POLICY OF THE PASCAL AND PASSGO COMPILERS FOR DECSYSTEM-10
2)	 *              AND DECSYSTEM-20, LOTS AND HAMBURG VERSIONS.
2)	 *
2)	 *                          ARMANDO R. RODRIGUEZ.
2)	 *                               10-JUL-79
2)	 *
2)	 * INTRODUCTION:
2)	 *
2)	 * THE STANDARD ONLY SAYS THAT THE USE OF THE RESERVED WORD PACKED IN A TYPE DEFI-
2)	 * NITION IS AN INDICATION TO THE COMPILER THAT IT SHOULD USE A PACKING MECHANISM,
2)	 * BUT IT DOES NOT DEFINE THE MECHANISM, AN IT IMPLIES THAT ONE WAY OF DOING IT IS
2)	 * BY DOING NOTHING. PASCAL/PASSGO DO HAVE A MECHANISM, THAT TRIES TO PROVIDE BOTH
2)	 * A REASONABLE PACKED SPACE AND THE LEAST POSSIBLE LOSS IN ADDRESSING EFFICIENCY,
2)	 * BY PREVENTING POTENTIALLY LARGE (ONE-WORD LONG OR MORE) OBJECTS FROM GETTING
2)	 * ALIGNED TO A BIT ADDRESS, AND BY TAKING ADVANTAGE OF THE HALF-WORD ADDRESSING
2)	 * MECHANISM OF THE DEC-10 HARDWARE.
2)	 *
2)	 * POLICY:
2)	 *
2)	 * THE ORDER OF DEFINITION OF THIS RULES IS INTENDED FOR CLARITY ONLY. IT DOES
2)	 * NOT IMPLY ANY PRECEDENCE RULE. THE RULES SHOULD BE MUTUALLY EXCLUSIVE. IF
2)	 * THERE IS ANY AMBIGUITY, IT IS A BUG IN THIS DOCUMENT: PLEASE TELL ARR.
2)	 *
2)	 * 1. EVERY NEW VARIABLE IS ALIGNED AT A NEW WORD BOUNDARY.
2)	 *
2)	 * 2. EVERY ARRAY OR RECORD, EVEN IF IT IS AN ELEMENT OF A PACKED ARRAY OR A FIELD
2)	 *      OF A PACKED RECORD, IS ALIGNED AT A NEW WORD BOUNDARY AND HAS A SIZE
2)	 *      GIVEN IN FULL WORDS, REGERDLESS OF WHETHER IT ITSELF IS PACKED.
2)	 *
2)	 * 4. PACKED FILES OF ASCII OR OF A SUBRANGE OF ASCII (E.G., CHAR) ARE ACTUALLY
2)	 *      ACCESSED AT BYTE BOUNDARIES. PACKED HAS NO EFFECT ON FILES OF ANY OTHER
2)	 *      TYPE, THAT IS, GETS AND PUTS WILL MOVE AROUND FULL WORDS.
2)	 *
2)	 * 5. IN FIELDS OF RECORDS AND ELEMENTS OF ARRAYS, EXCEPT FOR THE PREVIOUS RULES:
2)	 *     A. POINTERS ARE KEPT IN HALF A WORD.
2)	 *     C. WHEN THE SIZE OF AN OBJECT IS LARGER THAN WHAT IS LEFT OF THIS WORD,
2)	 *      THE OBJECT IS ALIGNED TO THE NEXT WORD.
2)	 *     D. WHEN THE TYPE OF AN OBJECT IS A SUBRANGE OF INTEGER, BUT ITS LOWER BOUND
2)	 *      IS NEGATIVE, ITS SIZE IS A FULL WORD, AND IT IS ALLIGNED TO THE NEXT
2)	 *      WORD BOUNDARY.
2)	 *     E. ALL OTHER CASES ARE PACKED TO THE EXACT NUMBER OF BITS THAT THEY NEED,
2)	 *      AND ALLIGNED IN THE NEXT AVAILABLE BIT. (BOOLEAN USES 1 BIT, ASCII AND
2)	 *      ITS SUBRANGES, 1 BYTE, THAT IS, 7 BITS).
2)	 *
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 9,9

2)	 *
2)	 * THINGS THAT YOU CAN DO:
2)	 *
2)	 * THERE ARE THINGS THAT THE COMPILER WILL NOT DO, THAT YOU CAN DO FAIRLY EASILY,
2)	 * BY USING THE APPROPRIATE DUMMY FIELDS TO FORCE AN ALIGNMENT THAT WOULD GIVE
2)	 * YOU BETTER ADDRESSING AT RUNTIME:
2)	 *
2)	 *     A. WHEN THE SIZE OF AN OBJECT IS EXACTLY HALF A WORD (18 BITS), THE COMPILER
2)	 *      WILL NOT DO ANYTHING SPECIAL, BUT IF IT ALSO HAPPENS TO BE ALIGNED AT
2)	 *      A HALF-WORD BOUNDARY, HALF-WORD ADDRESSING AND MOVING WILL BE USED.
2)	 *
2)	 *     B. WHEN YOU NEED THE ELEMENTS OF ONE RECORD TO MAP ALL INTO ONE ONLY WORD,
2)	 *      YOU HAVE TO DO TWO THINGS: (A) (OBVIOUSLY) MAKE SURE THAT THE TOTAL
2)	 *      SUM OF THE BIT SPACE NEEDED IS 36 OR LESS, AND (B) MAKE SURE THAT NONE
2)	 *      OF THE TYPES OF THE FIELDS IS AN ARRAY OR RECORD: EVEN IF IT IS PACKED,
2)	 *      IT WILL ALOCATE A FULL WORD FOR ITSELF, AND ALIGN AT A NEW WORD BOUN-
2)	 *      DARY.
2)	 ********************************************************************************)
2)	(*      GLOBAL DECLARATIONS.    *)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 9 line 21
1)	   %1  HEADER = 'PASCAL/LOTS FROM   1-JUL-79';        (* 14.*)        \
1)	   %2  HEADER = 'PASSGO/LOTS FROM   1-JUL-79';     (* 15.*)        \
1)	   %3  header = 'PASCAL/SAIL 1.0    1-JUL-79';         \
1)	   %4  HEADER = 'PASSGO/SAIL 1.0    1-JUL-79';         \
1)	   headlen = 11;   (*PART OF THE HEADER THAT WIL SHOW UP IN TTY*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 12 line 21
2)	   %1  HEADER = 'PASCAL/LOTS 1.1    6-SEP-79';        (* 14.*)        \
2)	   %2  HEADER = 'PASSGO/LOTS 1.1    6-SEP-79';        (* 15.*)        \
2)	   %3  header = 'PASCAL/SAIL 1.1    6-SEP-79';         \
2)	   %4  HEADER = 'PASSGO/SAIL 1.1    6-SEP-79';         \
2)	   headlen = 11;   (*PART OF THE HEADER THAT WIL SHOW UP IN TTY*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 9 line 53
1)	   maxpcrossoption = 20;         (* 4. NR. OF OPTION SWITCHES OF PCROSS *)
1)	   reg0 = 0;                     (* WORKREGISTER *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 12 line 53
2)	   maxpcrefoption = 18;          (* 4. NR. OF OPTION SWITCHES OF PCREF *)
2)	   reg0 = 0;                     (* WORKREGISTER *)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 10 line 95
1)	   structure = PACKED RECORD
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 10,13

**** File 2) PASCAL.PAS[PAS,SYS], Page 13 line 96
2)	   (*SEE THE DOCUMENTATION AT FRONT FOR A DETAILED DESCRIPTION OF THE FIELDS
2)	    IN THIS RECORD*)
2)	   structure = PACKED RECORD
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 10 line 159
1)	   identifier = PACKED RECORD
**** File 2) PASCAL.PAS[PAS,SYS], Page 13 line 163
2)	   (*SEE THE DOCUMENTATION AT FRONT FOR A DETAILED DESCRIPTION OF THE FIELDS
2)	    IN THIS RECORD*)
2)	   identifier = PACKED RECORD
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 11 line 65
1)	   cross_reference,                (*IF TRUE, PCROSS SHOULD BE CALLED AT THE END*)
1)	   counting,                       (*TRUE IF STATEMENT COUNTS (PROFILE) ARE REQUIRED*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 14 line 65
2)	   cross_reference,                (*IF TRUE, PCREF SHOULD BE CALLED AT THE END*)
2)	   counting,                       (*TRUE IF STATEMENT COUNTS (PROFILE) ARE REQUIRED*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 11 line 137
1)	   error_flag: boolean;            (*TRUE IF SYNTACTIC ERRORS DETECTED IN ONE PROGRAM*)
1)	   no_code_gen: boolean;             (*IF TRUE, WRITE_MACHINE_CODE WILL NOT EXECUTE*)
1)	   (*SET BY ANY ERRORS OR BY /NOLOAD IN PASSGO*)
1)	   error_in_heading: boolean;
1)	   error_in_first: boolean;        (* 30. TRUE IF THE EXTRA ADVICE MESSAGE IS NEEDED*)
1)	   errinx: 0..maxerr ;             (*NR OF ERRORS IN CURRENT SOURCE LINE*)
1)	   errorcount: integer;            (*TOTAL NR OF ERRORS DETECTED IN PROGRAM*)
1)	   error_exit: boolean;            (*TO ENABLE EXIT DURING COMPILATION*)
1)	   overrun: boolean;
**** File 2) PASCAL.PAS[PAS,SYS], Page 14 line 137
2)	   errorflag: boolean;            (*TRUE IF SYNTACTIC ERRORS DETECTED IN ONE PROGRAM*)
2)	   no_code_gen: boolean;             (*IF TRUE, WRITE_MACHINE_CODE WILL NOT EXECUTE*)
2)	   (*SET BY ANY ERRORS OR BY /NOLOAD IN PASSGO*)
2)	   needsaneoln: boolean;
2)	   errorinfirst: boolean;        (* 30. TRUE IF THE EXTRA ADVICE MESSAGE IS NEEDED*)
2)	   errinx: 0..maxerr ;             (*NR OF ERRORS IN CURRENT SOURCE LINE*)
2)	   errorcount: integer;            (*TOTAL NR OF ERRORS DETECTED IN PROGRAM*)
2)	   errorexit: boolean;            (*TO ENABLE EXIT DURING COMPILATION*)
2)	   overrun: boolean;
***************


  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 11,14

**** File 1) PASCAL.BKP[PAS,SYS], Page 11 line 164
1)	   errorinline,
1)	   followerror : boolean;
1)	   errline,
1)	   buffer: ARRAY [1..stdchcntmax] OF char;
1)	   firstpage,          (* 6. PAGE AT WHICH THE PROGRAM STARTS. *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 14 line 164
2)	   errorinlast,
2)	   errorinline,
2)	   followerror : boolean;
2)	   lastchcnt: 0..stdchcntmax;
2)	   lastbuffer,
2)	   errline,
2)	   buffer: ARRAY [1..stdchcntmax] OF char;
2)	   line500,            (* TO GIVE LINE NUMBER IN THE TTY EVERY 500 LINES OF A PAGE*)
2)	   firstpage,          (* 6. PAGE AT WHICH THE PROGRAM STARTS. *)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 11 line 213
1)	   lettersordigits,letters,digits,lettersdigitsorleftarrow,hexadigits: SET OF char;
1)	   constbegsys,simptypebegsys,typebegsys,blockbegsys,selectsys,facbegsys,
**** File 2) PASCAL.PAS[PAS,SYS], Page 14 line 217
2)	   lettersordigits,letters,digits,identchars,hexadigits: SET OF char;
2)	   constbegsys,simptypebegsys,typebegsys,blockbegsys,selectsys,facbegsys,
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 11 line 308
1)	   goodversion,                      (*VERSION NUMBER TO BE CONDITIONALLY COMPILED*)     (* 8.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 14 line 312
2)	   nameversion: PACKED ARRAY[1..5] OF char;    (*VERSION NAME FOR CONDITIONALLY COMPILED*)
2)	   goodversion,                      (*VERSION NUMBER TO BE CONDITIONALLY COMPILED*)     (* 8.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 11 line 321
1)	   (* 4. ALLOW FOR FLEXIBLE NAME OF PCROSS FILE; KEEP TABLE OF PCROSS SWITCHES.*)
1)	   %13  pcross_file,    (* 14.*)        \
1)	   pcross_tmpfile: PACKED ARRAY [1..9] OF char;
1)	   %13  pcross_device,  (* 14.*)        \
1)	   source_device: PACKED ARRAY[1..6] OF char;
1)	   %24  PCROSS_FILE,
1)	      PCROSS_DEVICE: ALFA;    (* 14.*)        \
1)	   pcross_ppn, pcross_core: integer;
1)	   pcross_option_name: PACKED ARRAY [1..maxpcrossoption] OF alfa;
1)	   (* 1. ALLOW FOR FLEXIBLE NAME OF LINKER-LOADER.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 14 line 326
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 11,14

2)	   (* 4. ALLOW FOR FLEXIBLE NAME OF PCREF FILE; KEEP TABLE OF PCREF SWITCHES.*)
2)	   %13  pcreffile,    (* 14.*)        \
2)	   pcreftmpfile: PACKED ARRAY [1..9] OF char;
2)	   %13  pcrefdevice,  (* 14.*)        \
2)	   source_device: PACKED ARRAY[1..6] OF char;
2)	   %24  PCREFFILE,
2)	      PCREFDEVICE: ALFA;    (* 14.*)        \
2)	   pcrefppn, pcrefcore: integer;
2)	   pcrefoption_name: PACKED ARRAY [1..maxpcrefoption] OF alfa;
2)	   (* 1. ALLOW FOR FLEXIBLE NAME OF LINKER-LOADER.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 70
1)	   (* INSERT (???) DEVICE, PROJNR, PROGNR AND CORE FOR PASLIB AND PCROSS *)
1)	   library[pascalsy].chained   := false;
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 70
2)	   (* INSERT (???) DEVICE, PROJNR, PROGNR AND CORE FOR PASLIB AND PCREF *)
2)	   library[pascalsy].chained   := false;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 86
1)	   pcross_file                  := 'PCROSS   ';
1)	   pcross_tmpfile               := 'PCR   TMP';
1)	   pcross_device                := 'SYS   ';           (* 0.*)
1)	   pcross_ppn                   := 0;
1)	   pcross_core                   := 100;
1)	   (* 1. FLEXIBLE NAME FOR THE LINKER.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 86
2)	   pcreffile                  := 'PCREF    ';
2)	   pcreftmpfile               := 'PCR   TMP';
2)	   pcrefdevice                := 'SYS   ';           (* 0.*)
2)	   pcrefppn                   := 0;
2)	   pcrefcore                  := 100;
2)	   (* 1. FLEXIBLE NAME FOR THE LINKER.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 104
1)	      PCROSS_FILE         := 'PCROSS    ';
1)	      PCROSS_TMPFILE      := 'PCR   TMP';
1)	      PCROSS_DEVICE       := 'SYS       ';
1)	      PCROSS_PPN          := 0;
1)	      PCROSS_CORE         := 100;
1)	      END (*SEARCH LIBRARIES*);
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 104
2)	      PCREFFILE         := 'PCREF     ';
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 12,15

2)	      PCREFTMPFILE      := 'PCR   TMP';
2)	      PCREFDEVICE       := 'SYS       ';
2)	      PCREFPPN          := 0;
2)	      PCREFCORE         := 100;
2)	      END (*SEARCH LIBRARIES*);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 200
1)	   extna[declfunc,22] := 'GETCHA    '; extlanguage[declfunc,22] := pascalsy;           (* 25.*)
1)	   extna[declfunc,23] := 'POS       '; extlanguage[declfunc,23] := pascalsy;           (* 25.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 200
2)	   extna[declfunc,22] := 'GETCHR    '; extlanguage[declfunc,22] := pascalsy;           (* 25.*)
2)	   extna[declfunc,23] := 'POS       '; extlanguage[declfunc,23] := pascalsy;           (* 25.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 334
1)	   forward_pointer_type := NIL; lastbtp := NIL;        fglobptr := NIL ;       fileptr := NIL ;
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 333
2)	   nameversion := '     ';
2)	   forward_pointer_type := NIL; lastbtp := NIL;        fglobptr := NIL ;       fileptr := NIL ;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 342
1)	   dp := true;                 search_error := true;   error_flag := false ;   %13 external := false; \
1)	   no_code_gen := false;       hassoslines := true;    logfile := false;
1)	   %13  entry_done := false;  \  debug := false;        debug_switch := false;  lptfile := false;
1)	   error_exit := false;        ttyread := false;       %13 load_and_go := false;   loadit := false; \
1)	   cross_reference := false;   %13 fortran_enviroment := false; \               overrun := false;
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 343
2)	   dp := true;                 search_error := true;   errorflag := false ;   %13 external := false; \
2)	   no_code_gen := false;       hassoslines := true;    logfile := false;
2)	   %13  entry_done := false;  \  debug := false;        debug_switch := false;  lptfile := false;
2)	   errorexit := false;        ttyread := false;       %13 load_and_go := false;   loadit := false; \
2)	   cross_reference := false;   %13 fortran_enviroment := false; \               overrun := false;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 354
1)	   tchcnt := 0;
1)	   aos := b0;                  %13  library_index := 0;  (* 17.*)   \   errinx := 0;
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 355
2)	   tchcnt := 0;                line500 := 1;
2)	   aos := b0;                  %13  library_index := 0;  (* 17.*)   \   errinx := 0;
***************

  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 12,15


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 374
1)	   lettersdigitsorleftarrow := ['0'..'9','A'..'Z','_'];
1)	   languagesys :=      [fortransy,pascalsy];
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 375
2)	   identchars := ['0'..'9','A'..'Z','_'];
2)	   languagesys :=      [fortransy,pascalsy];
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 12 line 675
1)	INITPROCEDURE (*PCROSS OPTION NAMES*) ;
1)	   (* 4. TO BE ABLE TO PASS THEM TO PCROSS *)
1)	   BEGIN
1)	   pcross_option_name [1] := 'NEW       ';
1)	   pcross_option_name [2] := 'NONEW     ';
1)	   pcross_option_name [3] := 'CROSS     ';
1)	   pcross_option_name [4] := 'NOCROSS   ';
1)	   pcross_option_name [5] := 'WIDTH     ';
1)	   pcross_option_name [6] := 'INDENT    ';
1)	   pcross_option_name [7] := 'INCREMENT ';
1)	   pcross_option_name [8] := 'DOTS      ';
1)	   pcross_option_name [9] := 'NODOTS    ';
1)	   pcross_option_name [10] := 'BEGIN     ';
1)	   pcross_option_name [11] := 'FORCE     ';
1)	   pcross_option_name [12] := 'NOFORCE   ';
1)	   pcross_option_name [13] := 'CLEAN     ';
1)	   pcross_option_name [14] := 'NOCLEAN   ';
1)	   pcross_option_name [15] := 'RES       ';
1)	   pcross_option_name [16] := 'NONRES    ';
1)	   pcross_option_name [17] := 'COMM      ';
1)	   pcross_option_name [18] := 'STR       ';
1)	   pcross_option_name [19] := 'CASE      ';
1)	   pcross_option_name [20] := 'VERSION   ';
1)	   END (*PCROSS OPTION NAMES*) ;
1)	   (*----------------------------------------------------------------------------*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 676
2)	INITPROCEDURE (*PCREF OPTION NAMES*) ;
2)	   (* 4. TO BE ABLE TO PASS THEM TO PCREF *)
2)	   BEGIN
2)	   pcrefoption_name [ 1] := 'CROSS     ';
2)	   pcrefoption_name [ 2] := 'VERSION   ';
2)	   pcrefoption_name [ 3] := 'WIDTH     ';
2)	   pcrefoption_name [ 4] := 'INDENT    ';
2)	   pcrefoption_name [ 5] := 'INCREMENT ';
2)	   pcrefoption_name [ 6] := 'DOTS      ';
2)	   pcrefoption_name [ 7] := 'NODOTS    ';
2)	   pcrefoption_name [ 8] := 'HEAD      ';
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 12,15

2)	   pcrefoption_name [ 9] := 'NOHEAD    ';
2)	   pcrefoption_name [10] := 'LINES     ';
2)	   pcrefoption_name [11] := 'BEGIN     ';
2)	   pcrefoption_name [12] := 'FORCE     ';
2)	   pcrefoption_name [13] := 'NOFORCE   ';
2)	   pcrefoption_name [14] := 'RES       ';
2)	   pcrefoption_name [15] := 'NONRES    ';
2)	   pcrefoption_name [16] := 'COMM      ';
2)	   pcrefoption_name [17] := 'STR       ';
2)	   pcrefoption_name [18] := 'CASE      ';
2)	   END (*PCREF OPTION NAMES*) ;
2)	   (*----------------------------------------------------------------------------*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 13 line 10
1)	   forward_pointer_type := NIL;         (* 13. LASTBTP REPEATED BELOW.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 16 line 9
2)	   currname := '          ';   (* 27.*)
2)	   forward_pointer_type := NIL;         (* 13. LASTBTP REPEATED BELOW.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 13 line 21
1)	   error_flag := false;                 overrun := false;
1)	   error_exit := false;                 ttyread := false;
1)	   %13  entry_done := false;  \          first_symbol := true;
**** File 2) PASCAL.PAS[PAS,SYS], Page 16 line 22
2)	   errorflag := false;                 overrun := false;
2)	   errorexit := false;                 ttyread := false;
2)	   %13  entry_done := false;  \          first_symbol := true;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 13 line 27
1)	   sstringstart := false;      (* 25.*) error_in_first := false;       (* 30.*)
1)	   counting := false;          (* 28.*)
1)	   genprocfile := false;
1)	   %13 ic := high_start;                    lc := low_start;    (* 14.*)        \
1)	   %13  library_index := 0;  (* 17.*)  \ errinx := 0;
**** File 2) PASCAL.PAS[PAS,SYS], Page 16 line 28
2)	   sstringstart := false;      (* 25.*) errorinfirst := false;       (* 30.*)
2)	   counting := false;          (* 28.*) errorinlast := true;		(* 30.*)
2)	   genprocfile := false;
2)	   %13 ic := high_start;                lc := low_start;    (* 14.*)        \
2)	   %13  library_index := 0;  (* 17.*)  \ errinx := 0;
***************

  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 13,16


**** File 1) PASCAL.BKP[PAS,SYS], Page 13 line 37
1)	   symcnt := 0;        (* 30.*)
1)	   currname := '          ';   (* 27.*)
1)	   FOR i := 1 TO 18 DO arraybps[i].state := unused;
1)	   arraybps[7].state := requested;
1)	   FOR i := 1 TO stdchcntmax DO errline[i] := ' ';
1)	   %13  (* 19.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 16 line 38
2)	   symcnt := 0;        (* 30.*)         lastchcnt := 0;
2)	   FOR i := 1 TO 18 DO
2)	      arraybps[i].state := unused;
2)	   arraybps[7].state := requested;
2)	   FOR i := 1 TO stdchcntmax DO
2)	      BEGIN
2)	      errline[i] := ' ';
2)	      lastbuffer[i] := ' ';
2)	      END;
2)	   %13  (* 19.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 13 line 110
1)	      error_flag := true ;
1)	      IF errinx >= maxerr THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 16 line 115
2)	      errorflag := true ;
2)	      IF errinx >= maxerr THEN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 13 line 125
1)		 error_in_first := true;
1)	      IF (ferrnr <> 214) AND (ferrnr <> 356) AND (ferrnr <> 405) AND
**** File 2) PASCAL.PAS[PAS,SYS], Page 16 line 130
2)		 errorinfirst := true;
2)	      IF (ferrnr <> 214) AND (ferrnr <> 356) AND (ferrnr <> 405) AND
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 15 line 44
1)	   %13  (* 14.*)        (* 11. DEFAULT THE OBJECT FILE NAME IF NEEDED.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 18 line 44
2)	   %3
2)	   IF object_protection = 0 THEN
2)	      object_protection := 400B;
2)	   (*NO DUMP OF .REL FILES. EJG 20-JAN-79*)
2)	   \
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 15,18

2)	   %13  (* 14.*)        (* 11. DEFAULT THE OBJECT FILE NAME IF NEEDED.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 15 line 163
1)	   % 3
1)	    LOAD_AND_GO := (NOT EXTERNAL) AND (NOT OPTION ('NOLINK    '))
1)	    AND (OPTION('LINK      ') OR OPTION('LOADER    '));
1)	    IF OPTION('LOADER    ') THEN
1)	    BEGIN
1)	    LINKER_FILE := 'LOADER   ';
1)	    LINK_TMPFILE := 'LOA   TMP';
1)	    END
1)	    ELSE
1)	    BEGIN
1)	    LINKER_FILE := 'LINK     ';
1)	    LINK_TMPFILE := 'LNK   TMP'
1)	    END;
1)	    \
1)	   %13
1)	   reset(tempcore,link_tmpfile);       (* CHECK FOR THE DEBUG SWITCH IN THE TEMPFILE FOR THE LINKER *)
1)	   IF NOT eof(tempcore) THEN
1)	      BEGIN
1)	      new(command_buffer:buffer_size);
1)	      command_buffer↑[0] := ' '; i := 1;
1)	      WHILE NOT eof(tempcore) AND (i < buffer_size) DO
1)		 BEGIN
1)		 IF eoln(tempcore) THEN
1)		    BEGIN
1)		    readln(tempcore);
1)		    command_buffer↑[i] := cr;
1)		    command_buffer↑[i+1] := lf; i := i + 2
1)		    END
1)		 ELSE        (* NOT EOLN(TEMPCORE) *)
1)		    BEGIN
1)		    read(tempcore,ch);
1)		    command_buffer↑[i] := ch;
1)		    IF (command_buffer↑[i-1] = '/') AND (ch = 'D') THEN
1)		       BEGIN
1)		       debug := true; debug_switch := true;
1)		       (* 13. GET RID OF THE REST OF THE STANDARD SWITCH, /DEBUG:PASCAL*)
1)		       WHILE ch IN ['A'..'Z',':'] DO
1)			  read (tempcore, ch);
1)		       command_buffer↑[i-1] := ch;
1)		       END
1)		    ELSE i := i + 1
1)		    END
1)		 END;
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 15,18

1)	      rewrite(tempcore,link_tmpfile);
1)	      write(tempcore,command_buffer↑:i);
1)	      dispose(command_buffer:buffer_size)
1)	      END
1)	   ELSE        (* EOF(TEMPCORE) *)
1)	      BEGIN
1)	      IF loadit THEN
1)		 BEGIN
1)		 rewrite(tempcore,link_tmpfile);     (* 1. FLEXIBLE NAME OF LINKER.*)
1)		 write(tempcore,'DSK:',object_file:6);
1)		 IF load_and_go THEN
1)		    write(tempcore,' /E');
1)		 write(tempcore,'/G');               (* 1. MORE CORRECT ORDERING.*)
1)		 END
1)	      END;
1)	   (* 14.*)    \
1)	   %24  (* 14. PASSGO VERSION OF THE LOAD_AND_GO CHECKING.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 18 line 169
2)	   %1
2)	     RESET(TEMPCORE,LINK_TMPFILE);       (* CHECK FOR THE DEBUG SWITCH IN THE TEMPFILE FOR THE LINKER *)
2)	     IF NOT EOF(TEMPCORE) THEN
2)	     BEGIN
2)	     NEW(COMMAND_BUFFER:BUFFER_SIZE);
2)	     COMMAND_BUFFER↑[0] := ' '; I := 1;
2)	     WHILE NOT EOF(TEMPCORE) AND (I < BUFFER_SIZE) DO
2)	     BEGIN
2)	     IF EOLN(TEMPCORE) THEN
2)	     BEGIN
2)	     READLN(TEMPCORE);
2)	     COMMAND_BUFFER↑[I] := CR;
2)	     COMMAND_BUFFER↑[I+1] := LF; I := I + 2
2)	     END
2)	     ELSE        (* NOT EOLN(TEMPCORE) *)
2)	     BEGIN
2)	     READ(TEMPCORE,CH);
2)	     COMMAND_BUFFER↑[I] := CH;
2)	     IF (COMMAND_BUFFER↑[I-1] = '/') AND (CH = 'D') THEN
2)	     BEGIN
2)	     DEBUG := TRUE; DEBUG_SWITCH := TRUE;
2)	     (* 13. GET RID OF THE REST OF THE STANDARD SWITCH, /DEBUG:PASCAL*)
2)	     WHILE CH IN ['A'..'Z',':'] DO
2)	     READ (TEMPCORE, CH);
2)	     COMMAND_BUFFER↑[I-1] := CH;
2)	     END
2)	     ELSE I := I + 1
2)	     END
2)	     END;
2)	     REWRITE(TEMPCORE,LINK_TMPFILE);
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 15,18

2)	     WRITE(TEMPCORE,COMMAND_BUFFER↑:I);
2)	     DISPOSE(COMMAND_BUFFER:BUFFER_SIZE)
2)	     END
2)	     ELSE        (* EOF(TEMPCORE) *)
2)	     BEGIN
2)	     IF LOADIT THEN
2)	     BEGIN
2)	     REWRITE(TEMPCORE,LINK_TMPFILE);     (* 1. FLEXIBLE NAME OF LINKER.*)
2)	     WRITE(TEMPCORE,'DSK:',OBJECT_FILE:6);
2)	     IF LOAD_AND_GO THEN
2)	     WRITE(TEMPCORE,' /E');
2)	     WRITE(TEMPCORE,'/G');               (* 1. MORE CORRECT ORDERING.*)
2)	     END
2)	     END;
2)	     (* 14.*)    \
2)	   %24  (* 14. PASSGO VERSION OF THE LOAD_AND_GO CHECKING.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 39
1)		    IF linenr = '-----' THEN
1)		       hassoslines := false;
1)	      EXIT IF (linenr <> '     ') OR eof(source);
1)		 linecnt := 1;
1)		 IF debug AND (lastline > -1) THEN newpager;
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 39
2)		    hassoslines :=  linenr <> '-----';
2)	      EXIT IF (linenr <> '     ') OR eof(source);
2)		 linecnt := 1;
2)		 line500 := 1;
2)		 IF debug AND (lastline > -1) THEN newpager;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 52
1)		    write (tty, pagecnt:3, '..');
1)		 break (tty);
1)		 error_in_heading := true;
1)		 readln(source)  (*TO OVERREAD SECOND <LF> IN PAGE MARK*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 52
2)		    BEGIN
2)		    write (tty, pagecnt:3, '..');
2)		    break (tty);
2)		    needsaneoln := true;
2)		    END;
2)		 readln(source)  (*TO OVERREAD SECOND <LF> IN PAGE MARK*)
***************

  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 16,19


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 83
1)		 IF error_in_heading THEN
1)		    BEGIN
1)		    writeln(tty);
1)		    error_in_heading := false;
1)		    END;
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 85
2)		 IF needsaneoln THEN
2)		    BEGIN
2)		    writeln(tty);
2)		    needsaneoln := false;
2)		    END;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 98
1)		       IF hassoslines THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 100
2)		       IF errorinfirst AND NOT errorinlast THEN
2)			  writeln(list,'--------  ',lastbuffer:lastchcnt);
2)		       IF hassoslines THEN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 106
1)		 IF NOT hassoslines THEN    (* 27.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 110
2)		 IF errorinfirst AND NOT errorinlast THEN
2)		    writeln(tty,'--------  ',lastbuffer:lastchcnt);
2)		 IF NOT hassoslines THEN    (* 27.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 188
1)			  END;
1)		       IF error_in_first THEN      (* 30.*)
1)			  BEGIN
1)			  error_in_first := false;
1)			  IF llptfile THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 194
2)			  END (*CASE*);
2)		       IF errorinfirst THEN      (* 30.*)
2)			  BEGIN
2)			  errorinfirst := false;
2)			  IF llptfile THEN
***************

  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 16,19


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 199
1)		 break(tty); errinx := 0; errorinline := false;
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 205
2)		 errorinlast := true;
2)		 break(tty); errinx := 0; errorinline := false;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 202
1)		 END;
1)	      readln(source);
1)	      linecnt := linecnt + 1; chcnt := 0; symcnt :=0;
1)	      IF programname <> '          ' THEN   (* 27.*)
1)		 IF linecnt MOD 500 = 0 THEN
1)		    BEGIN
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 209
2)		 END (*IF ERRORINLINE*)
2)	      ELSE  (*NOT ERRORINLINE*)
2)		 IF symcnt > 0 THEN
2)		    BEGIN
2)		    errorinlast := false;
2)		    lastbuffer := buffer;
2)		    lastchcnt := chcnt;
2)		    END (*NOT ERRORINLINE*);
2)	      readln(source);
2)	      linecnt := linecnt + 1; chcnt := 0; symcnt :=0;
2)	      line500 := line500 + 1;
2)	      IF programname <> '          ' THEN   (* 27.*)
2)		 IF line500 = 500 THEN
2)		    BEGIN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 210
1)		    error_in_heading := true;
1)		    END;
1)	      IF error_exit THEN
1)		 IF first_symbol THEN GOTO 0
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 225
2)		    needsaneoln := true;
2)		    line500 := 0;
2)		    END;
2)	      IF errorexit THEN
2)		 IF first_symbol THEN GOTO 0
***************


  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 16,19

**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 218
1)		 IF NOT eof(source) THEN getnextline
1)		 ELSE
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 234
2)		 IF NOT eof(source) THEN
2)		    getnextline
2)		 ELSE
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 222
1)		    error_exit := true;
1)		    finishline
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 239
2)		    errorexit := true;
2)		    finishline
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 16 line 256
1)		 error_flag := false;
1)	      END (* WARNING *);
**** File 2) PASCAL.PAS[PAS,SYS], Page 19 line 273
2)		 errorflag := false;
2)	      END (* WARNING *);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 9
1)		 111,
1)		 222;
1)	      CONST
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 9
2)		 111,222,333;
2)	      CONST
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 50
1)		    VAR
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 49
2)		    (*PROCESSES THE OPTIONS INSIDE A COMMENT THAT STARTS WITH
2)		     A DOLLAR SIGN.*)
2)		    (*LETTERS LEFT: ABHJKMNQWZ*)
2)		    VAR
***************


  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 17,20

**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 58
1)		       IF NOT (ch IN ['\','*']) THEN nextch;
1)		       IF ch IN (['+','-'] + digits) THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 61
2)		       IF ch <> endchar THEN nextch;
2)		       IF ch IN (['+','-'] + digits) THEN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 144
1)				END
1)			  END
1)		       ELSE error(203);
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 147
2)				END  (*CASE LCH OF*)
2)			  END  (*IF CH IN [+,-]+DIGITS*)
2)		       ELSE error(203);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 153
1)		 IF ch = '$' THEN options;
1)		 (* 3.  TREAT '%'-'\' COMMENTS DIFFERENTLY.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 156
2)		 (* 3.  TREAT '%'-'\' COMMENTS DIFFERENTLY.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 165
1)		       WHILE ch <> endchar DO
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 167
2)		       BEGIN
2)		       IF ch = '$' THEN options;
2)		       WHILE ch <> endchar DO
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 170
1)			  END
1)		    END (*IF ONECHAR*)
1)		 ELSE
1)		    LOOP
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 174
2)			  END;
2)		       nextch;
2)		       END;
2)		    END (*IF ONECHAR*)
2)		 ELSE
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 17,20

2)		    BEGIN
2)		    IF ch = '$' THEN options;
2)		    LOOP
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 183
1)		 nextch
1)		 END (*SKIPCOMMENT*);
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 191
2)		    nextch
2)		    END;
2)		 END (*SKIPCOMMENT*);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 188
1)		 BEGIN (*SKIP_E_DIRECTORY*)
1)		 WHILE NOT (ch = ';') DO
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 197
2)		 VAR
2)		    oldlptfile: boolean;
2)		 BEGIN (*SKIP_E_DIRECTORY*)
2)		 oldlptfile := lptfile;
2)		 lptfile := false;
2)		 WHILE NOT (ch = ';') DO
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 196
1)		 END (*SKIP_E_DIRECTORY*);
1)		 \
1)	      BEGIN   (*INSYMBOL*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 20 line 209
2)		 lptfile := oldlptfile;
2)		 END (*SKIP_E_DIRECTORY*);
2)		 \
2)		 (*]INSYMBOL*)
2)	      BEGIN   (*INSYMBOL*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 214
1)		    skipcomment (true,'"'); GOTO 111;
1)		    END;
**** File 2) PASCAL.PAS[PAS,SYS], Page 21 line 18
2)		    IF incondcomp THEN
2)		       BEGIN
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 17,21

2)		       incondcomp := false;
2)		       nextch;
2)		       END
2)		    ELSE
2)		       skipcomment (true,'"');
2)		    GOTO 111;
2)		    END;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 230
1)		       skipcomment (false,' '); GOTO 111;        (* 2.,3.*)
1)		       END
**** File 2) PASCAL.PAS[PAS,SYS], Page 21 line 41
2)		       skipcomment (false,'*'); GOTO 111;        (* 2.,3.*)
2)		       END
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 248
1)		    UNTIL  NOT (ch IN lettersdigitsorleftarrow);
1)		    %34
**** File 2) PASCAL.PAS[PAS,SYS], Page 21 line 59
2)		    UNTIL  NOT (ch IN identchars);
2)		    %34
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 17 line 488
1)		       BEGIN
1)		       sy := ssy[ch]; op := sop[ch];
1)		       nextch;
1)		       END;
1)		 OTHERS:
1)		    BEGIN
1)		    sy := ssy[ch]; op := sop[ch];
**** File 2) PASCAL.PAS[PAS,SYS], Page 21 line 299
2)		       GOTO 333;
2)		 OTHERS:
2)		    BEGIN
2)	      333:
2)		    sy := ssy[ch]; op := sop[ch];
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 21 line 1
1)		 (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION        *)
1)	      PROCEDURE labeldeclaration;
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 21,25

**** File 2) PASCAL.PAS[PAS,SYS], Page 25 line 1
2)		 (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION, proceduredeclaration[parameterlist[ffparlist]] *)
2)	      PROCEDURE labeldeclaration;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 22 line 1
1)		 (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT*)
1)	      PROCEDURE body(fsys: setofsys);
**** File 2) PASCAL.PAS[PAS,SYS], Page 26 line 1
2)		 (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT,ADDNEWCOUNTER*)
2)	      PROCEDURE body(fsys: setofsys);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 23 line 127
1)		 PROCEDURE leavebody;
**** File 2) PASCAL.PAS[PAS,SYS], Page 27 line 128
2)		 PROCEDURE addnewcounter; FORWARD;
2)		 PROCEDURE leavebody;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 23 line 138
1)		       lpcross_file,lpcross_device: alfa;
1)		       (* 28.*)        \
**** File 2) PASCAL.PAS[PAS,SYS], Page 27 line 141
2)		       lpcreffile,lpcrefdevice: alfa;
2)		       (* 28.*)        \
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 23 line 149
1)		       macro4(541B(*HRRI*),topp,basis,0);
**** File 2) PASCAL.PAS[PAS,SYS], Page 27 line 152
2)		       IF entercount THEN
2)			  BEGIN       (* 28.*)
2)			  addnewcounter; entercount := false;
2)			  END;
2)		       macro4(541B(*HRRI*),topp,basis,0);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 23 line 179
1)				lpcross_file[i] := pcross_file[i];
1)				IF i <= 6 THEN
1)				   lpcross_device[i] := pcross_device[i]
1)				ELSE
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 23,27

1)				   lpcross_device[i] := ' ';
1)				END;
1)			     lpcross_file[10] := ' ';
1)			     lpcross_device[10] := ' ';
1)			     \
1)			     %24
1)				END;
1)				IF  CROSS_REFERENCE THEN        (* 21.*)
1)				BEGIN
1)				ALFACONSTANT(PCROSS_FILE);
1)				(* 21.*)    \
1)			     %13  alfaconstant(lpcross_file);     \
1)			     macro2(551B(*HRRZI*),regin+1);
1)			     deposit_constant(strg,gattr);
1)			     %24  ALFACONSTANT(PCROSS_DEVICE);    \
1)			     %13  alfaconstant(lpcross_device);   \
1)			     macro2(551B(*HRRZI*),regin+2);
1)			     deposit_constant(strg,gattr);
1)			     macro3r(551B(*HRRZI*),regin+3,pcross_ppn);
1)			     macro3r(551B(*HRRZI*),regin+4,pcross_core);
1)			     support(runprogram);
**** File 2) PASCAL.PAS[PAS,SYS], Page 27 line 186
2)				lpcreffile[i] := pcreffile[i];
2)				IF i <= 6 THEN
2)				   lpcrefdevice[i] := pcrefdevice[i]
2)				ELSE
2)				   lpcrefdevice[i] := ' ';
2)				END;
2)			     lpcreffile[10] := ' ';
2)			     lpcrefdevice[10] := ' ';
2)			     \
2)			     %234
2)			     END;
2)			  IF  cross_reference   THEN        (* 21.*)
2)			     BEGIN
2)			     \
2)			     %24
2)				ALFACONSTANT(PCREFFILE);
2)				(* 21.*)    \
2)			     %13  alfaconstant(lpcreffile);     \
2)			     macro2(551B(*HRRZI*),regin+1);
2)			     deposit_constant(strg,gattr);
2)			     %24  ALFACONSTANT(PCREFDEVICE);    \
2)			     %13  alfaconstant(lpcrefdevice);   \
2)			     macro2(551B(*HRRZI*),regin+2);
2)			     deposit_constant(strg,gattr);
2)			     macro3r(551B(*HRRZI*),regin+3,pcrefppn);
2)			     macro3r(551B(*HRRZI*),regin+4,pcrefcore);
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 23,27

2)			     support(runprogram);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 26 line 318
1)		    IF NOT error_flag  AND NOT no_code_gen THEN
1)		       BEGIN       (* 22. AVOID CODE GENERATION IN CASE OF AN ERROR.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 30 line 318
2)		    IF NOT errorflag  AND NOT no_code_gen THEN
2)		       BEGIN       (* 22. AVOID CODE GENERATION IN CASE OF AN ERROR.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 26 line 356
1)		       END (* IF NOT ERROR_FLAG *)
1)		    ELSE
1)		       %13
1)		       IF error_flag THEN      \
1)			  BEGIN
**** File 2) PASCAL.PAS[PAS,SYS], Page 30 line 356
2)		       END (* IF NOT ERRORFLAG *)
2)		    ELSE
2)		       %13
2)		       IF errorflag THEN      \
2)			  BEGIN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 28 line 232
1)		       PROCEDURE profuncall_support;
1)			  BEGIN (*PROFUNCALL_SUPPORT*)
1)			  IF (lsupport IN [readirange..wrtdset,readpseudostring..writedefpseudostring])
**** File 2) PASCAL.PAS[PAS,SYS], Page 32 line 232
2)		       PROCEDURE callsupport;
2)			  BEGIN (*CALLSUPPORT*)
2)			  IF (lsupport IN [readirange..wrtdset,readpseudostring..writedefpseudostring])
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 28 line 249
1)			  END (*PROFUNCALL_SUPPORT*);
1)		       PROCEDURE readreadln;       (*READ A LIST OF PARAMETERS FROM A TEXT FILE*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 32 line 249
2)			  END (*CALLSUPPORT*);
2)		       PROCEDURE readreadln;       (*READ A LIST OF PARAMETERS FROM A TEXT FILE*)
***************


  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 28,32

**** File 1) PASCAL.BKP[PAS,SYS], Page 28 line 344
1)				profuncall_support
1)			     EXIT IF sy <> comma;
**** File 2) PASCAL.PAS[PAS,SYS], Page 32 line 344
2)				callsupport
2)			     EXIT IF sy <> comma;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 28 line 408
1)					 generate_code( 200B (*MOVE*) , regin+3 , gattr ) ;
1)					 regc := gattr.reg ;
**** File 2) PASCAL.PAS[PAS,SYS], Page 32 line 408
2)					 generate_code( 200B (*MOVE*) , regc+1 , gattr ) ;
2)					 regc := gattr.reg ;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 28 line 509
1)				profuncall_support
1)			     EXIT IF sy <> comma;
**** File 2) PASCAL.PAS[PAS,SYS], Page 32 line 509
2)				callsupport
2)			     EXIT IF sy <> comma;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 29 line 43
1)			     IF NOT error_flag THEN
1)				WITH fattr DO
**** File 2) PASCAL.PAS[PAS,SYS], Page 33 line 43
2)			     IF NOT errorflag THEN
2)				WITH fattr DO
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 29 line 55
1)			     IF NOT error_flag THEN
1)				WITH fattr DO
**** File 2) PASCAL.PAS[PAS,SYS], Page 33 line 55
2)			     IF NOT errorflag THEN
2)				WITH fattr DO
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 29 line 105
1)			  IF NOT error_flag THEN
1)			     BEGIN
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 29,33

**** File 2) PASCAL.PAS[PAS,SYS], Page 33 line 105
2)			  IF NOT errorflag THEN
2)			     BEGIN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 29 line 133
1)			  IF NOT error_flag THEN
1)			     BEGIN
**** File 2) PASCAL.PAS[PAS,SYS], Page 33 line 133
2)			  IF NOT errorflag THEN
2)			     BEGIN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 29 line 208
1)			     END (* IF NOT ERROR_FLAG *)
1)			  END (* PACKUNPACK *);
**** File 2) PASCAL.PAS[PAS,SYS], Page 33 line 208
2)			     END (* IF NOT ERRORFLAG *)
2)			  END (* PACKUNPACK *);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 30 line 28
1)			  LOOP
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 28
2)			  macro3(271b(*addi*),topp,topp_offset+1);
2)			  LOOP
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 30 line 44
1)				      macro4(202B(*MOVEM*),reg,topp,topp_offset + i);
1)				      IF first_expression THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 45
2)				      macro4(202B(*MOVEM*),reg,topp,0);
2)				      macro3(350b(*aos*),0,topp);
2)				      IF first_expression THEN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 30 line 69
1)			     IF NOT error_flag THEN
1)				BEGIN
1)				insert_address(no, insert_size, topp_offset + i);
1)				IF conversion THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 71
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 30,34

2)			     IF NOT errorflag THEN
2)				BEGIN
2)				insert_address(no, insert_size, topp_offset + i+1);
2)				macro3(275b(*subi*),topp,topp_offset+i+1);
2)				IF conversion THEN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 30 line 87
1)				macro3(253B(*AOBJN*),regc,ic - 2);
1)				IF conversion THEN gattr.typtr := realptr
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 90
2)				macro3r(253B(*AOBJN*),regc,ic - 2);
2)				IF conversion THEN gattr.typtr := realptr
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 31 line 125
1)			   PROFUNCALL(<FILENAME>[,<DEVICE>[,<PROJECT-PROGRAMMER>[,<CORE-ASSIGNMENT]]])
1)			   ALLOWS TO EXIT FROM ONE PROGRAM AND EXECUTE ANOTHER *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 35 line 125
2)			   CALL(<FILENAME>[,<DEVICE>[,<PROJECT-PROGRAMMER>[,<CORE-ASSIGNMENT]]])
2)			   ALLOWS TO EXIT FROM ONE PROGRAM AND EXECUTE ANOTHER *)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 1
1)			  (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT] ]PROFUNCALL*)
1)		       PROCEDURE call_non_standard;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 1
2)			  (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT,saveexpr] ]PROFUNCALL*)
2)		       PROCEDURE call_non_standard;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 13
1)			  FUNCTION compparam(fcp1,fcp2 : ctp):boolean;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 12
2)			     oldsstringstart,
2)			     oldparsingparameters: boolean;
2)			  FUNCTION compparam(fcp1,fcp2 : ctp):boolean;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 93
1)			  BEGIN   (* CALL_NON_STANDARD *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 95
2)	(* 25. put string expressions in memory, to be able to address them.*)
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 32,36

2)	procedure saveexpr;
2)	   var
2)		lattr: attr;
2)	   begin (*saveexpr*)
2)	   with lattr do
2)		begin
2)		typtr := gattr.typtr;
2)		kind := varbl;
2)		vlevel := level;
2)		dplmt := lc;
2)		indexr := basis;
2)		packfg := notpack;
2)		indbit := 0;
2)		   vrelbyte := no;
2)		lc := lc + typtr↑.size;
2)		end;
2)	   if lcmax < lc then
2)		lcmax := lc;
2)	   store(gattr.reg,lattr);
2)	   gattr := lattr;
2)	   regc := regc-1;
2)	   end (*saveexpr*);
2)			  BEGIN   (* CALL_NON_STANDARD *)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 96
1)			  pctp := fcp;    (* 25.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 122
2)				llc := lc ;
2)			  pctp := fcp;    (* 25.*)
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 119
1)				llc := lc ;
1)				lc := lc + save_count ;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 146
2)				lc := lc + save_count ;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 139
1)			     parsingparameters := true;  (* 25. *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 165
2)			     oldparsingparameters := parsingparameters;
2)			     oldsstringstart := sstringstart;
2)			     parsingparameters := true;  (* 25. *)
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 32,36

***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 161
1)						     IF NOT comptypes(idtype,nxt↑.idtype) THEN error(555)
1)						     ELSE
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 189
2)						     IF NOT comptypes(idtype,nxt↑.idtype) THEN
2)							error(555)
2)						     ELSE
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 167
1)							   IF language<>pascalsy THEN error(510)
1)							   ELSE
1)							      BEGIN
1)							      IF p=0 THEN macro3(514B(*HRLZ*),regc,basis)
1)							      ELSE
1)								 IF p=1 THEN macro4(514B(*HRLZ*),regc,basis,-1)
1)								 ELSE
1)								    IF p>1 THEN
1)								       BEGIN
1)								       macro4(550B(*HRRZ*),regc,basis,-1);
1)								       FOR i:=3 TO p DO macro4(550B(*HRRZ*),regc,regc,-1);
1)								       macro4(514B(*HRLZ*),regc,regc,-1)
1)								       END;
1)							      IF pfaddr=0 THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 196
2)							   IF language<>pascalsy THEN
2)							      error(510)
2)							   ELSE
2)							      BEGIN
2)							      IF p=0 THEN
2)								 macro3(514B(*HRLZ*),regc,basis)
2)							      ELSE IF p=1 THEN
2)								 macro4(514B(*HRLZ*),regc,basis,-1)
2)							      ELSE IF p>1 THEN
2)								 BEGIN
2)								 macro4(550B(*HRRZ*),regc,basis,-1);
2)								 FOR i:=3 TO p DO macro4(550B(*HRRZ*),regc,regc,-1);
2)								 macro4(514B(*HRLZ*),regc,regc,-1)
2)								 END;
2)							      IF pfaddr=0 THEN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 234
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 32,36

1)								 IF (typtr↑.bitsize = 7) AND (kind = cst) THEN
1)								    charconstant(chr(cval.ival));
1)						     load_address;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 264
2)								if kind = cst then
2)								    begin
2)								 IF typtr↑.bitsize = 7 THEN
2)								    charconstant(chr(cval.ival));
2)								    end
2)								 else if kind = expr then
2)								    saveexpr;
2)						     load_address;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 336
1)			     parsingparameters := false; (* 25.*)
1)			     IF sy = rparent THEN insymbol
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 371
2)			     parsingparameters := oldparsingparameters; (* 25.*)
2)			     sstringstart := oldsstringstart;
2)			     IF sy = rparent THEN insymbol
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 366
1)				   macro3(515B(*HRLZI*),reg0,-number_of_parameters);
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 402
2)				   if level > 1 then
2)				      macro4r(202b(*movem*),newreg,reg0,lc)
2)				   else
2)				      macro4(202b(*movem*),newreg,basis,lc);
2)				   lc := lc + 1;
2)				   if lc > lcmax then lcmax := lc;
2)				   macro3(515B(*HRLZI*),reg0,-number_of_parameters);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 383
1)				   macro3(275B(*SUBI*),topp,topp_offset);
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 425
2)				   if level > 1 then
2)				      macro4r(200b(*move*),newreg,reg0,lc)
2)				   else
2)				      macro4r(200b(*move*),newreg,basis,lc);
2)				   macro3(275B(*SUBI*),topp,topp_offset);
***************

  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 32,36


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 423
1)			     lc := llc
1)			     END ;
1)			  gattr.typtr := fcp↑.idtype; regc := lregc
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 469
2)			     END ;
2)			     lc := llc;
2)			  gattr.typtr := fcp↑.idtype; regc := lregc
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 32 line 446
1)				   getputresetrewrite;
1)				7, 8:
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 492
2)				   BEGIN
2)				   getputresetrewrite;
2)				   IF no_right_parent THEN GOTO 666
2)				   END;
2)				7, 8:
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 33 line 215
1)								    WHILE (lrmin<cval.ival) DO
1)								       BEGIN
1)								       cstpart:=cstpart + [lrmin];
1)								       lrmin:=lrmin+1
1)								       END;
1)								    rangepart:=false
**** File 2) PASCAL.PAS[PAS,SYS], Page 37 line 215
2)								    IF lrmin > cval.ival THEN
2)								       error(451)
2)								    ELSE
2)								       WHILE (lrmin<cval.ival) DO
2)									  BEGIN
2)									  cstpart:=cstpart + [lrmin];
2)									  lrmin:=lrmin+1
2)									  END;
2)								    rangepart:=false
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 36 line 60
1)				   IF (klass = vars) AND (vlev = 0) AND (sy = arrow) AND
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 60
2)				IF klass = proc THEN profuncall(fsys,lcp)
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 36,40

2)				else
2)				   begin
2)				   IF (klass = vars) AND (vlev = 0) AND (sy = arrow) AND
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 36 line 65
1)				IF lcp↑.klass = proc THEN profuncall(fsys,lcp)
1)				ELSE assignment(lcp)
1)				END;
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 68
2)				   assignment(lcp);
2)				   end;
2)				END;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 36 line 271
1)			  counter := 1; startofcounts := lcmain;
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 274
2)			  lcmain := lcmain + 32;	(*to provide for space for temporaries*)
2)			  counter := 1; startofcounts := lcmain;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 37 line 11
1)	   error_in_heading := true;
1)	   getnextline; ch := ' '; insymbol; reset_possible := false;
**** File 2) PASCAL.PAS[PAS,SYS], Page 41 line 11
2)	   needsaneoln := true;
2)	   getnextline; ch := ' '; insymbol; reset_possible := false;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 37 line 123
1)	   IF NOT error_flag THEN
1)	      BEGIN
**** File 2) PASCAL.PAS[PAS,SYS], Page 41 line 123
2)	   IF NOT errorflag THEN
2)	      BEGIN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 37 line 149
1)	      %24      ERROR_IN_HEADING := TRUE;       (* 14.*)        \
1)	      END;
1)	   block(NIL,blockbegsys + statbegsys-[casesy],[period,colon]);
1)	   error_exit := true; finishline;
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 37,41

1)	   111:
**** File 2) PASCAL.PAS[PAS,SYS], Page 41 line 149
2)	      %24      NEEDSANEOLN := TRUE;       (* 14.*)        \
2)	      END;
2)	   block(NIL,blockbegsys + statbegsys-[casesy],[period,colon]);
2)	   errorexit := true; finishline;
2)	   111:
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 37 line 167
1)	   IF error_flag THEN                  (* 13.*)
1)	      no_code_gen := true
**** File 2) PASCAL.PAS[PAS,SYS], Page 41 line 167
2)	   IF errorflag THEN                  (* 13.*)
2)	      no_code_gen := true
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 38 line 52
1)	      rewrite(tempcore,pcross_tmpfile);
1)	      i := 1;
**** File 2) PASCAL.PAS[PAS,SYS], Page 42 line 52
2)	      rewrite(tempcore,pcreftmpfile);
2)	      i := 1;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 38 line 64
1)		    source_file:6,'.NEW,',source_file:6,'.LST');
1)	      FOR i := 1 TO maxpcrossoption DO
1)		 IF option (pcross_option_name [i]) THEN
1)		    BEGIN
1)		    write (tempcore, '/',pcross_option_name [i]);
1)		    getoption (pcross_option_name [i], j);
1)		    IF j <> 0 THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 42 line 64
2)		    source_file:6,'.LST');
2)	      FOR i := 1 TO maxpcrefoption DO
2)		 IF option (pcrefoption_name [i]) THEN
2)		    BEGIN
2)		    write (tempcore, '/',pcrefoption_name [i]);
2)		    getoption (pcrefoption_name [i], j);
2)		    IF j <> 0 THEN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 38 line 75
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 38,42

1)		 (* 1., 4. PASS THE LINKER NAME TO PCROSS.*)
1)		 IF loadit THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 42 line 75
2)		 (* 1., 4. PASS THE LINKER NAME TO PCREF.*)
2)		 IF loadit THEN
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 38 line 92
1)		 call(pcross_file,pcross_device,pcross_ppn,pcross_core);  (* 4.*)
1)		 END;
**** File 2) PASCAL.PAS[PAS,SYS], Page 42 line 92
2)		 call(pcreffile,pcrefdevice,pcrefppn,pcrefcore);  (* 4.*)
2)		 END;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 38 line 104
1)	   rewrite(tempcore,link_tmpfile);
1)	   writeln(tty);
**** File 2) PASCAL.PAS[PAS,SYS], Page 42 line 104
2)	   %12
2)	      REWRITE(TEMPCORE,LINK_TMPFILE);
2)	      \
2)	   writeln(tty);
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 38 line 221
1)	   REWRITE(TEMPCORE,PCROSS_TMPFILE);
1)	   I := 1;
**** File 2) PASCAL.PAS[PAS,SYS], Page 42 line 223
2)	   REWRITE(TEMPCORE,PCREFTMPFILE);
2)	   I := 1;
***************


**** File 1) PASCAL.BKP[PAS,SYS], Page 38 line 234
1)	   SOURCE_FILE:6,'.NEW,',SOURCE_FILE:6,'.LST');
1)	   FOR I := 1 TO MAXPCROSSOPTION DO
1)	   IF OPTION (PCROSS_OPTION_NAME [I]) THEN
1)	   BEGIN
1)	   WRITE (TEMPCORE, '/',PCROSS_OPTION_NAME [I]);
1)	   GETOPTION (PCROSS_OPTION_NAME [I], J);
1)	   IF J <> 0 THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 42 line 236
2)	   SOURCE_FILE:6,'.LST');
2)	   FOR I := 1 TO MAXPCREFOPTION DO
  1) PASCAL.BKP[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:33	pages 38,42

2)	   IF OPTION (PCREFOPTION_NAME [I]) THEN
2)	   BEGIN
2)	   WRITE (TEMPCORE, '/',PCREFOPTION_NAME [I]);
2)	   GETOPTION (PCREFOPTION_NAME [I], J);
2)	   IF J <> 0 THEN
***************